presenter rails中的未定义方法`content_for'

时间:2015-05-08 06:02:40

标签: ruby-on-rails ruby web

我在rails中使用演示者来显示保存在yml文件中的数据。 (i18n gem)

这是控制器 -

class DocumentsController < ApplicationController
  def index
    @presenter = DocumentPresenter.new
  end
end

这是我的观点 -

= @presenter.viewname

这是我的主持人 -

class DocumentPresenter
  def viewname
    content_for :secondary_nav_title do
      t('Documents')
    end
  end
end

错误说:

  

未定义的方法`content_for'

为什么导轨不会识别演示者中的content_for

1 个答案:

答案 0 :(得分:0)

不应在模型中使用content_for辅助方法,因为这违反了MVC模式。

如果您必须使用它,虽然不建议这样做,您可以在模型的底部添加它。

def helpers 
    ActionController::Base.helpers
end

然后调用content_for,您将使用

class DocumentPresenter
  def viewname
      helpers.content_for :secondary_nav_title do
         t('Documents')
      end
  end
end