Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在演示者之间共享演示者方法?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何在演示者之间共享演示者方法?

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

我正在尝试从Rails 4应用程序中的另一个演示者调用演示者方法。视图中未呈现任何内容。正确的设置方法是什么

例如,如果我想在活动提要中显示用户演示者,请使用Ryan Bates示例作为基础

用户演示者:

活动提要演示者:

我正试着做类似的事情

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 %>