我已经找到了很多关于添加表单助手方法的信息(请参阅我的其他问题之一),但是我找不到任何关于添加辅助方法的信息,就好像它们是在application_helper.rb
中定义的一样。
我尝试将application_helper.rb
从rails应用程序复制到gem中,但这不起作用。
我也试过了:
class ActionView::Helpers
..但这会产生错误。
答案 0 :(得分:26)
为您的帮助方法创建一个模块:
module MyHelper
def mymethod
end
end
将其混合到ActionView :: Base中(例如在init.rb
或lib/your_lib_file.rb
中)
ActionView::Base.send :include, MyHelper
答案 1 :(得分:0)
要扩展@sdbrown对Rails 4的出色回答:
# in in lib/my_rails_engine.rb
require 'my_rails_engine/my_rails_helper.rb'
require 'my_rails_engine/engine.rb'
和
# in lib/my_rails_engine/engine.rb
module MyRailsEngine
class Engine < ::Rails::Engine
initializer "my_rails_engine.engine" do |app|
ActionView::Base.send :include, MyRailsEngine::MyRailsHelpers
end
end
end
最后
# in lib/my_rails_engine/my_rails_helper.rb
module MyRailsEngine
module MyRailsHelpers
# ...
def your_helper_here
end
end
end