::Rails.env based domain var

What's the "right" way to DRY up this statement in my app?

      if ::Rails.env == 'staging'
        domain = '.staging-domain.com'
      else
        domain = '.production-domain.com'
      end

I am using it in a mailer, as well as, the session_store.rb initializer.

Not sure how I should make this "domain" variable available across my
entire app the "Rails" way.

Thanks!

What's the "right" way to DRY up this statement in my app?

     if ::Rails.env == 'staging'
       domain = '.staging-domain.com'
     else
       domain = '.production-domain.com'
     end

I am using it in a mailer, as well as, the session_store.rb initializer.

Not sure how I should make this "domain" variable available across my
entire app the "Rails" way.

I would put it in your config/environments/[environment].rb files, one per environment, or put the local (test/development) one in your environment.rb file, and the deployment version in the production.rb file.

Walter

Domain = (::Rails.env == “staging” ? Staging-domain : other-domain)

Handy posted…

Probably the best would be to set it as the default host:

config.routes.default_url_options[:host] = ‘something.com

in each environment. This has the added bonus of ensuring that full URLs always get generated with the right host. You may need to also set config.action_mailer.default_url_options[:host] to get the same information to your mailers.

–Matt Jones