我正在编写Rails引擎,作为其中的一部分,我有一个复制一些迁移文件的生成器脚本。
发电机位于此处
lib/generators/install/install_generator.rb
生成器看起来像这样
module Calligraph
class InstallGenerator < Rails::Generators::NamedBase
...
...
end
end
在主机应用程序中,如果我执行rails g
,我会将其与其他生成器一起看到。
Calligraph:
calligraph:install
如果我点击
rails g calligraph:install
它回来了
Could not find generator calligraph:install.
关于什么是缺失/错误的任何想法?
答案 0 :(得分:2)
尝试将生成器移动到
lib/generators/calligraph/install/install_generator.rb
。
因为你的生成器是在一个模块中定义的,所以Rails希望它包含在一个具有相同名称的子目录中,就像命名空间控制器或模块中的其他Rails扩展一样。
或者,你有时会得到一个&#34;找不到发电机&#34;如果您的生成器中存在语法问题,则会出现错误,但如果出现这种情况,控制台也会发出跟踪信息以及该错误的详细信息。
为了使您的发电机正常工作,您还需要在引擎中的某个位置rails/generators
。我通常在生成器文件的顶部执行此操作,但由于rails g
正在拾取您的生成器,因此您似乎已经在某处处理它。