列出了Rails生成器,但在运行时未找到

时间:2014-07-04 12:12:06

标签: ruby-on-rails ruby-on-rails-4 rails-engines

我正在编写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.

关于什么是缺失/错误的任何想法?

1 个答案:

答案 0 :(得分:2)

尝试将生成器移动到 lib/generators/calligraph/install/install_generator.rb

因为你的生成器是在一个模块中定义的,所以Rails希望它包含在一个具有相同名称的子目录中,就像命名空间控制器或模块中的其他Rails扩展一样。

或者,你有时会得到一个&#34;找不到发电机&#34;如果您的生成器中存在语法问题,则会出现错误,但如果出现这种情况,控制台也会发出跟踪信息以及该错误的详细信息。

为了使您的发电机正常工作,您还需要在引擎中的某个位置rails/generators。我通常在生成器文件的顶部执行此操作,但由于rails g正在拾取您的生成器,因此您似乎已经在某处处理它。