0

真的很简单。

class Template

    def stuff_i_want
      stylesheet_link_tag('my_stylesheet')
    end

    class << self       
      include ActionView::Helpers::TagHelper
      include ActionView::Helpers::AssetTagHelper
    end

end

这回来了..

undefined local variable or method `config' for Template:Class
from /Users/elephanttrip/.rvm/gems/ruby-1.9.3-p385@shasta/gems/actionpack-3.1.12/lib/action_view/helpers/asset_tag_helpers/stylesheet_tag_helpers.rb:137:in `stylesheet_link_tag'

stylesheet_tag_helpers.rb在 Railtie :

    def stylesheet_link_tag(*sources)
      @stylesheet_include ||= StylesheetIncludeTag.new(config, asset_paths)
      @stylesheet_include.include_tag(*sources)
    end

Config 没有在该文件中的任何地方实例化,所以我假设它是从其他地方需要的。我知道在哪里或如何。

任何人都知道如何将配置注入/传递给我的助手?我以前从来不需要这样做。

4

2 回答 2

0

看起来您实际上是在将您的助手包括在内Object-然后定义您的Template类。我不知道为什么它要求配置,但尝试将包含在你的类定义中,看看问题是否消失。

不过,您可能不应该随意地将助手加入到您的观点之外的事情中——这不是他们的目的。

于 2013-05-13T15:17:49.580 回答
0

为什么不view_context改用。

因此,您可以这样做,而不是包含帮助模块:

class Template

  def stuff_i_want
    view_context.stylesheet_link_tag('my_stylesheet')
  end
end

这应该可以正常工作。如果你想包括你的助手,那么使用下面的代码:

class Template
  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::AssetTagHelper

  def stuff_i_want
    stylesheet_link_tag('my_stylesheet')
  end
end

理想情况下,您不应该在您的控制器中包含助手,因为它们不是为此而设计的。希望有帮助

于 2013-05-13T15:33:57.570 回答