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
Can you do something like overriding Rails::Server#initialize
so 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.
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