當使用Rails :: Engine的Rails生成器時,它似乎沒有拾取放入lib目錄的任何模板文件。如這裏指示使用引擎的Rails 3 Generator自定義模板
現在我有
lib/templates/rails/scaffold_controller
我也曾嘗試
lib/my_engine/templates/rails/scaffold_controller
有任何人嘗試過這一點。
當使用Rails :: Engine的Rails生成器時,它似乎沒有拾取放入lib目錄的任何模板文件。如這裏指示使用引擎的Rails 3 Generator自定義模板
現在我有
lib/templates/rails/scaffold_controller
我也曾嘗試
lib/my_engine/templates/rails/scaffold_controller
有任何人嘗試過這一點。
看來,這是不支持的發動機
在Rails應用程序整理需要添加此到路徑
module Rails
class Application
module Finisher
include Initializable
initializer :add_generator_templates do
config.generators.templates.unshift(*paths["lib/templates"].existent)
end
......
因此,這必須在發動機的配置來實現,以便照顧這工作。
module MyEngine
class Engine < ::Rails::Engine
config.generators.templates.unshift File.expand_path("lib/templates", root)
end
end
這是錯誤還是期望的行爲?
以上回答(由stellard自己)並沒有解決我的情況在Rails 3.2中,但How to override a rails generator template in a gem?修復它。只是指出像我這樣的人。
如果在Rails的3.2發動機的根路徑使用rails g generator MyGenerator
你會得到這樣的事情:
class MyGenerator < Rails::Generators::NamedBase
source_root File.expand_path('../templates', __FILE__)
end
其犯規污染你Engine
類,並且是更本地化的發電機。