0
一個主持人我想作一個演講的Event
指數來看,目前通過這樣所有事件迭代:編寫索引操作
<% @events each do |event| %>
<td><%= link_to event.name, event_path(event) %></td>
<% end %>
會有在那裏許多其他的事情,但是這是它的要點。我希望能夠做一些事情,如:
<% present @events do |event_presenter| %>
<td><%= event_presenter.event_title %></td>
<% end %>
的EventPresenter
將是BasePresenter
的子類,從Railscast 287
class BasePresenter
def initialize(object, template)
@object = object
@template = template
end
private
def self.presents(name)
define_method(name) do
@object
end
end
def h
@template
end
def markdown(text)
Redcarpet.new(text, :hard_wrap, :filter_html, :autolink).to_html.html_safe
end
def method_missing(*args, &block)
@template.send(*args, &block)
end
end
採取什麼讓我困惑的是,在Railscast的例子是表演動作,而不是索引行動。在視圖中沒有迭代,如@events each do |event|
。你不能只拘泥於方法進入演示文件是這樣的:
def event_title
link_to event.name, event_path(event)
end