environment.rb usage? use of "Rails::Initializer.run" section block vs outside block? (e.g. where to put constants)

Hi,

Can anyone explain the intended usage within “environment.rb” of the areas (a) within the "Rails::Initializer.run do |config| " block section and (b) the area after this block.

For example when/what do I include in the "Rails::
Initializer.run do |config| " section versus not? As an example say setting up constants.

Tks

Greg Hauptmann wrote:

Hi,

Can anyone explain the intended usage within "environment.rb" of the
areas (a) within the "Rails::Initializer.run do |config| " block
section and (b) the area after this block.

For example when/what do I include in the "Rails:: Initializer.run do
>config> " section versus not? As an example say setting up constants.

Tks

>

Have a look at
http://glu.ttono.us/articles/2006/05/22/configuring-rails-environments-the-cheat-sheet
and http://glu.ttono.us/articles/2006/05/22/guide-environments-in-rails-1-1
Hope this helps
Chris

thanks Chris,

It still didn’t fully clarify things for me however. I see they state: “With the exceptions of the RAILS_GEM_VERSION constant and the setting for what environment to use, the bulk of the configuration in Rails happens within the Rails::
Initializer.run block.”

However I note that in my application I am currently (writely or wrongly) been setting various parameters outside the "Rails::Initializer.run
do |config| " block…, e.g.

  • LOCALES = {‘en’ => ‘en’, ‘fr’ => ‘fr’}.freeze
  • ActionMailer::Base.smtp_settings = { etc
  • ExceptionNotifier.email_prefix
    = “xxx” etc
  • TimeZone.all.each_with_index { |tz, i| $TIME_ZONE_ARRAY << [tz, i.to_s] }
  • class Logger
    def format_message(severity, timestamp, progname, msg) etc
    So it’s still not quite clear to me whether I’m currently following rails best practice or not? Any advice anyone?

Tks
Greg

I set up all my constants, including ActionMailer settings, after the
Rails::Initializer.run block, and I believe this is the correct way to
do it. Apart from anything else, I don't think they don't require access
to the config object which is passed to the block.

Cheers
Chris

Greg Hauptmann wrote: