Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.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 presenter rails中未定义的方法“content_for”_Ruby On Rails_Ruby_Web - Fatal编程技术网

Ruby on rails presenter rails中未定义的方法“content_for”

Ruby on rails presenter rails中未定义的方法“content_for”,ruby-on-rails,ruby,web,Ruby On Rails,Ruby,Web,我使用rails视图的演示器来显示保存在yml文件中的数据。i18n宝石 这是控制器- class DocumentsController < ApplicationController def index @presenter = DocumentPresenter.new end end 这是我的演示者- class DocumentPresenter def viewname content_for :secondary_nav_title do

我使用rails视图的演示器来显示保存在yml文件中的数据。i18n宝石

这是控制器-

class DocumentsController < ApplicationController
  def index
    @presenter = DocumentPresenter.new
  end
end
这是我的演示者-

class DocumentPresenter
  def viewname
    content_for :secondary_nav_title do
      t('Documents')
    end
  end
end
错误显示:

未定义的方法“content\u for”


为什么rails不能识别演示者中的content\u?

助手content\u方法不应该在模型中使用,因为这违反了MVC模式

如果必须使用它,尽管不建议使用,但可以将其添加到模型底部

def helpers 
    ActionController::Base.helpers
end
然后为您调用content_将使用

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

我没有在模型中使用内容。我正在我的演示者中使用它。问题似乎出在演讲者身上。由于某些原因,Rails无法识别演示者中的内容。我说的对吗?这个解决方案应该仍然有效,试着在演示文稿末尾添加def帮助程序,并以上面显示的方式进行调用,效果很好。当我试图通过t'Documents'访问这些值时,似乎仍然存在问题。我也需要为此添加一个助手吗?
class DocumentPresenter
  def viewname
      helpers.content_for :secondary_nav_title do
         t('Documents')
      end
  end
end