我正在开发一款基于Rails的应用程序,其中包含一个引擎,类似于子应用程序,可以为现有应用程序添加更多路由。
这个概念非常强大,感谢Rails。
但是我遇到了奇怪的挑战,在开发模式下自动加载引擎lib目录中的文件更改。每次我在引擎的app目录中进行更改,无论是模型还是控制器,都能够无缝运行,但是lib目录中的任何文件更改都没有被捕获。我能做些什么吗?谢谢你的帮助。
我正在开发一款基于Rails的应用程序,其中包含一个引擎,类似于子应用程序,可以为现有应用程序添加更多路由。
这个概念非常强大,感谢Rails。
但是我遇到了奇怪的挑战,在开发模式下自动加载引擎lib目录中的文件更改。每次我在引擎的app目录中进行更改,无论是模型还是控制器,都能够无缝运行,但是lib目录中的任何文件更改都没有被捕获。我能做些什么吗?谢谢你的帮助。
class MyEngine < Rails::Engine
# Add a load path for this specific Engine
config.autoload_paths << File.expand_path("../lib/some/path", __FILE__)
initializer "my_engine.add_middleware" do |app|
app.middleware.use MyEngine::Middleware
end
end
require 'my_engine/my_object'
class MyModel < AR::Base
...
end
config/application.rb
文件中。config.eager_load_paths += ["#{Rails.root}/lib"]
config.eager_load_paths += ["#{Rails.root}/lib"] if Rails.env.development?
Rails 引擎
而不是完整的 Rails 应用程序
。 - Swaps
engine.rb
位于同一个文件夹中,因此我的路径只是../lib/some/path
的.
。 - davew