嘿伙计们,我正在Rails 3.0.3中编写一个自定义生成器(名为shcaffold),我希望它根据传入它的第一个参数生成一个active_record模型(和迁移)(模型的名称) )。
但是,当我运行命令时,我收到此错误:
$ rails g shcaffold someclass
error active_record [not found]
这是我的生成器定义,存储在lib / generators / shcaffold / shcaffold_generator.rb中:
class ShcaffoldGenerator < Rails::Generators::NamedBase
include Rails::Generators::ResourceHelpers
source_root File.expand_path('../templates', __FILE__)
# Run Other Generators
hook_for :model, :in => :rails, :required => true
end
我在应用程序的application.rb中定义了orm:
config.generators do |g|
g.orm :active_record
g.template_engine :erb
g.test_framework :test_unit, :fixture => false
g.stylesheets false
end
但是,唉,我没有运气。
答案 0 :(得分:0)
没有详细解答,但你应该从中获取灵感:https://github.com/ryanb/nifty-generators
答案 1 :(得分:0)
关于幽冥地区error active_record [not found]
疼痛的另一个类似问题=)
在这里:Rails: hook_for :orm not finding active_record
如何解决:
保持在Rails :: Generators命名空间
中这已经解决了大部分未发现的问题。
将您的生成器配置为默认值。 (Generators模型空间内的任何地方)
module Rails
module Generators
class Railtie < ::Rails::Engine
if config.respond_to?(:app_generators)
config.app_generators.orm = :my_own_model
else
config.generators.orm = :my_own_model
end
end
end
end
你不再有rails g
的麻烦了。
的nJoy!