所以我在下面的Rails 4.2应用程序中看到了一些代码。
1)kite_presenter.rb中的@template是什么类型的对象?它是ActionView的一个实例,它是如何访问辅助工具的,例如 image_tag ? 2)如果1的答案是Actionview的一个实例,那么在application_helper.rb中,自我如何知道引用一个ActionView对象?
kite_presenter.rb
class KitePresenter < SimpleDelegator
def initialize(kite, template)
super(kite)
@template = template
end
def tail_display
h.image_tag("tail.png", class: 'gray')
end
end
application_helper.rb
module ApplicationHelper
def present(object, klass = nil)
klass ||= "#{object.class}Presenter".constantize
presenter = klass.new(object, self)
yield presenter if block_given?
presenter
end
end
some_html.erb
<% present(kite) do |kite_presenter| %>
<%= kite_presenter.tail_display %>
<% end %>
答案 0 :(得分:0)