如何在可安装轨道的引擎上重新加载助手

时间:2015-08-05 09:22:10

标签: ruby-on-rails

在我的rails可安装引擎中:

config.to_prepare do
  # works fine, and reload automatically in development
  ApplicationController.helper :application

  # works fine, but doesn't reload. After restart server, it works.
  ApplicationController.helper Rails.application.helpers

当arg是符号或字符串时,它看起来很好。但是当arg是像Rails.application.helpers这样的模块时,它不起作用。

或者有一种很好的方法可以从[:application, :users]获得Rails.application.helpers等所有帮助。

Rails:4.2.3

2 个答案:

答案 0 :(得分:0)

您可以配置引擎的autoload_paths。

LIB / my_engine / engine.rb

module MyEngine
  class Engine < ::Rails::Engine
    ...
    config.autoload_paths += Dir[Engine.root.join('app', 'helpers')]
  end
end

http://api.rubyonrails.org/classes/Rails/Engine.html

答案 1 :(得分:0)

对于使用Rails 6的人,您可能想尝试使用传统的自动装带器而不是zeitwerk

config.autoloader = :classic