Rails::Generators(NameError)未初始化的常量。

12

我正在更新我写的一个生成器的代码,但是一直到现在都正常工作。

当我运行下列命令时:

bundle exec rails g

我收到了以下错误信息

/Users/mpierc200/projects/prototype_conflux/vendor/gems/itrc_client_files_generator-1.0.13/lib/itrc_client_files_generator.rb:6:in `<top (required)>':
uninitialized constant Rails::Generators (NameError)

错误所在行为

class ItrcClientFilesGenerator < Rails::Generators::Base

我的 Rails 版本是

Rails 3.1.9

Ruby版本为

ruby 1.9.3p194

这不是基于你写的代码吗?(链接为:http://stackoverflow.com/questions/12500469/how-to-implement-generators-for-a-plugin-located-at-the-lib-plugin-name-dire) - d_ethier
是的,有问题的代码行在我写的文件里。 - Marlin Pierce
尝试使用 require 'rails/generators/generated_attribute'。基于这个答案 - d_ethier
嗯。浏览了3.1版rails代码后,看起来没问题。为什么不尝试只使用require rails/generators呢? - d_ethier
天啊,我以为我已经尝试过了。我查阅了类文档,并尝试要求文档中所述的类所在的文件。@d_ethier,你的建议起作用了! - Marlin Pierce
@d_ethier,请将您的评论写成答案,我会接受它。这样问题就不会显示为未回答的了。 :) - Marlin Pierce
1个回答

17

看起来,Rails生成器模块在Rails 3开发过程中被剔除,并且没有自动加载。这可能是有好的原因。

你需要在自定义生成器中包含它们:

require 'rails/generators'

class ItrcClientFilesGenerator < Rails::Generators::Base
  # Fancy generator code here
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接