【发布时间】:2016-07-16 06:55:13
【问题描述】:
关于我在本教程中看到的几个方法的问题:https://richonrails.com/articles/rails-presenters
特别是:
module ApplicationHelper
def present(model, presenter_class=nil)
klass = presenter_class || "#{model.class}Presenter".constantize
presenter = klass.new(model, self)
yield(presenter) if block_given?
end
end
和
class BasePresenter < SimpleDelegator
def initialize(model, view)
@model, @view = model, view
super(@model)
end
def h
@view
end
end
present 方法是如何工作的?我对它的 arguments 参数感到很困惑,即model, presenter_class=nil 以及整个方法。
我也对model, view 参数感到非常困惑,super(@model) 方法在哪里/是什么?
任何可以解释这些方法的信息都会非常有帮助,因为我过去一直在盯着它看,同时想知道它们到底是如何工作的。
【问题讨论】:
标签: ruby-on-rails