Ruby on rails 如何在演示者之间共享演示者方法?
我正在尝试从Rails 4应用程序中的另一个演示者调用演示者方法。视图中未呈现任何内容。正确的设置方法是什么 例如,如果我想在活动提要中显示用户演示者,请使用Ryan Bates示例作为基础 用户演示者: 活动提要演示者: 我正试着做类似的事情Ruby on rails 如何在演示者之间共享演示者方法?,ruby-on-rails,Ruby On Rails,我正在尝试从Rails 4应用程序中的另一个演示者调用演示者方法。视图中未呈现任何内容。正确的设置方法是什么 例如,如果我想在活动提要中显示用户演示者,请使用Ryan Bates示例作为基础 用户演示者: 活动提要演示者: 我正试着做类似的事情 class ActivityPresenter < SimpleDelegator .... def render_activity div_for activity do present action.user do |u
class ActivityPresenter < SimpleDelegator
....
def render_activity
div_for activity do
present action.user do |user_presenter|
user_presenter.linked_name
end
end
end
...
end
class UserPresenter < BasePresenter
...
def linked_name
site_link(user.full_name.present? ? user.full_name : user.username)
end
...
end
尽管也可以在控制器中访问:
def present(object, klass = nil)
klass ||= "#{object.class}Presenter".constantize
klass.new(object, view_context)
end
在视图中启用渲染,如下所示:
<% present @user do |user_presenter| %>
<%= user_presenter.linked_name %>
<% end %>
您是否使用了任何gem?好吧,应用程序中有几个gem,但没有一个在这里调用或应该影响的gem!我的意思是,您正在使用任何用于演示者模式的gem?:)不,只是一个基本的演示者,根据RailsCast,这里缺少很多东西,任何人都无法给出有意义的答案。如何初始化演示者(从控制器添加代码)?如何在视图中输出演示者?
<% present @user do |user_presenter| %>
<%= user_presenter.linked_name %>
<% end %>