gpt4 book ai didi

ruby-on-rails - 连接到 Rails 模型生成器

转载 作者:数据小太阳 更新时间:2023-10-29 08:20:28 24 4
gpt4 key购买 nike

我正在尝试在我的 Rails 4 应用程序中创建一个客户生成器。我跑了

rails g generator bootstrap

这在 lib/generators/bootstrap 中创建了一些文件。包括 bootstrap_generator.rb

class BootstrapGenerator < Rails::Generators::NamedBase
source_root File.expand_path('../templates', __FILE__)
end

我希望这个生成器在我运行 rake g model ... 时 Hook 。我该如何实现?

最佳答案

无论如何,我认为这不是干净但可行的解决方案:

config/application.rb

module YourApp
class Application < Rails::Application
config.generators do |g|
g.orm :concerns # to get run our generator under ActiveRecord
g.test_framework :rspec
end
end
end

lib/generators/rails/concerns/concerns_generator.rb

require 'rails/generators/active_record/model/model_generator'

module Rails
module Generators

hide_namespace 'concerns'

class ConcernsGenerator < ActiveRecord::Generators::ModelGenerator
source_root "#{base_root}/active_record/model/templates"

def create_concern_file
create_file "app/models/concerns/#{file_name}_concern.rb", <<-FILE
class #{class_name}Concern

end
FILE
end

def create_concern_spec
create_file "spec/models/#{file_name}_concern_spec.rb", <<-FILE
require 'spec_helper'

describe #{class_name}Concern
pending "add some examples to (or delete) #{__FILE__}"
end
FILE
end

end
end
end

这是给我们:

$ rails g model Product name:string description:text
invoke concerns
create db/migrate/20131005122831_create_products.rb
create app/models/product.rb
invoke rspec
create spec/models/product_spec.rb
create app/models/concerns/product_concern.rb
create spec/models/product_concern_spec.rb

关于ruby-on-rails - 连接到 Rails 模型生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19122354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com