【问题标题】:Add custom generator in addition to default rails generators除了默认的 rails 生成器之外,添加自定义生成器
【发布时间】:2013-10-05 14:27:51
【问题描述】:

我需要在脚手架生成时为 i18n 添加一些翻译。我想知道:除了默认值之外,是否有可能强制 rails g scaffold 调用我自己的生成器?

如果没有,我如何在我的生成器中调用默认的 Rails 生成器(例如 active_record)?

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    根据the doc here,您可以使用您的生成器中的generate 来调用另一个生成器。

    generate a_generator_name, args_as_string
    

    class FooGenerator < Rails::Generators::Base
      argument :attributes, :type => :array
    
      def call
        do_your_stuff
        run_scaffold
      end
    
      private
    
      def do_your_stuff
      end
    
      def run_scaffold
        generate 'scaffold', attributes.join(' ')
      end
    end
    

    【讨论】:

    • 我知道我可以单独使用我自己的生成器,但我希望它在 rails g scaffold ModelName 调用时自动调用。
    • 唯一的方法是对不推荐的 Rails 生成器进行猴子补丁。创建您自己的并调用 Rails,正如您已经想到的那样
    • 很遗憾,但我不知道如何在我的生成器中调用rails生成器。
    • 如果我理解正确,你的意思是这个方法:api.rubyonrails.org/classes/Rails/Generators/… 它就像在控制台中调用 rails g smth。但是我需要访问像 active_record 这样的 rails 内置生成器,它会创建模型和迁移。有可能吗?
    • 是的,既然你想修补scaffold,你可以这样做:generate 'scaffold', args_as_string
    猜你喜欢
    • 2012-06-07
    • 1970-01-01
    • 2019-05-02
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2014-07-21
    • 2020-10-28
    相关资源
    最近更新 更多