Rails3 Custom Environment Variables
I recently saw a question on Stack Overflow regarding custom variables that have different values based on which environment you are running for Rails.
It turns out it’s very easy to accomplish.
[ruby]
# config/initializers/configuration.rb
class Configuration
class << self
attr_accessor :json_url
end
end
[/ruby]
This gives you access to a Rails variable called Configuration.json_url. Now we just need to initialize this value in our environment files.
[ruby]
# config/environments/development.rb
# Put this inside the ______::Application.configure block
config.after_initialize do
Configuration.json_url = "http://test.domain.com"
end
[/ruby]
[ruby]
# config/environments/test.rb
config.after_initialize do
Configuration.json_url = "http://www.domain.com"
end
[/ruby]
Now you can test it in the Rails console.
[text]
$ rails console
>> Configuration.json_url
"http://test.domain.com"
>>
[/text]
[text]
$ RAILS_ENV=production rails console
>> Configuration.json_url
"http://www.domain.com"
>>
[/text]
Now your Rails app has access to these variables, so you can use them in your Controllers, Models or Views as needed.
3 Comments
[…] This post was mentioned on Twitter by Jason Noble, Jason Noble. Jason Noble said: Blog Post: Rails 3 custom per environment variables: http://jasonnoble.org/2011/02/rails3-custom-environment-variables.html […]
Hey I located your blog by mistake when i was searching Bing for this concern, I need to say your site is quite valuable I also like the theme, its cool!
I really learned about most of this, but that being said, I still believed it had been useful. Good blog!