我目前正在使用一些gem,它有一些我希望包含在我的控制器类中的metlhods,但我希望它能在安装时自动包含它。因此,例如,include MyGem
将不再需要。
我尝试使用铁路,但我不确定这是否是正确的方法,因为它无法正常工作。它看起来类似于:
require 'my_gem'
module MyGem
class Railtie < Rails::Railtie
initializer "my_gem.method_items" do
ActionController::Base.send :include, MethodItems
end
end
end
任何帮助都会很棒
答案 0 :(得分:2)
module MyGem
module InstanceMethods
def foo
"bar"
end
end
end
module MyGem
class Engine < Rails::Engine
initializer "testing" do |app|
ActionController::Base.send :include, MyGem::InstanceMethods
end
end
end
然后在控制台中:
ActionController::Base.instance_methods.grep(/foo/)
=> ["foo"]