使用gem添加辅助方法

Arc*_*ath 9 ruby ruby-on-rails

我已经找到了很多关于添加表单助手方法的信息(参见我的其他问题之一),但是我找不到任何关于添加辅助方法的信息,就像它们被定义一样application_helper.rb.

我已经尝试application_helper.rb从rails应用程序复制到gem中,但这不起作用.

我也尝试过:

class ActionView::Helpers
Run Code Online (Sandbox Code Playgroud)

..但是会产生错误.

tsd*_*own 26

在某处为辅助方法创建一个模块:

module MyHelper
  def mymethod
  end
end
Run Code Online (Sandbox Code Playgroud)

将其混合到ActionView :: Base中(例如in init.rblib/your_lib_file.rb)

ActionView::Base.send :include, MyHelper
Run Code Online (Sandbox Code Playgroud)

  • 根据@BrandonTilley注释[此处](http://stackoverflow.com/questions/5791211/how-do-i-extract-rails-view-helpers-into-a-gem#comment-42572499),您应该使用ActiveSupport从ActiveSupport 3.0.0开始,.on_load(:action_view){include MyGem :: ViewHelpers}`而不是`send:include`。链接的SO线程中的更多详细信息。 (2认同)