Rails 3 initializers that run only on `rails server` and not `rails generate`, etc

后端 未结 2 2127
南旧
南旧 2020-12-17 21:41

I have a relatively small piece of initializer code that I want to run whenever rails server runs, but not when I run rails generate, rails

相关标签:
2条回答
  • 2020-12-17 21:50

    Can you do something like overriding Rails::Server#initializeso that it invokes your initialization code in your initializer?

    Or, more easily, just put your code in script/rails, as that will be run everytime you run rails server, you can easily fiddle with ARGV or ENV in there.

    0 讨论(0)
  • 2020-12-17 22:07

    Here's one way:

    # config/initializers/my_init.rb
    Rails.application.config.after_initialize do
        # tweak this as required...
        unless defined?(::Rails::Generators) || defined?(::Rails::Console) || File.basename($0) =='rake'
            Rails.logger.info("Doing some init")
            # ...
        end
    end
    
    0 讨论(0)
提交回复
热议问题