Sean Hussey
2006-May-05 21:30 UTC
[Rails] Best place for storing configuration information?
Hi all, Where do you store your non-Rails-specific configuration info? For instance, I want to be able to login to LDAP as a particular admin user. I don''t want the u/p combo in any of the models...does it go in environment.rb? database.yml? Set a constant in a lib file? When you''ve got it in a good location, how do you access it? Thanks! Sean
Philip Hallstrom
2006-May-05 21:41 UTC
[Rails] Best place for storing configuration information?
> Where do you store your non-Rails-specific configuration info? For > instance, I want to be able to login to LDAP as a particular admin > user. I don''t want the u/p combo in any of the models...does it go in > environment.rb? database.yml? Set a constant in a lib file? > > When you''ve got it in a good location, how do you access it?This is what I''ve done... % cat config/site.yml defaults: &defaults memcache_servers : [''127.0.0.1:11211'', ''127.0.0.1:11212''] use_static_banners : true development: <<: *defaults use_static_banners : true test: use_static_banners : false <<: *defaults production: use_static_banners : false <<: *defaults Then, in environment.rb do: site_yaml = YAML::load_file("#{RAILS_ROOT}/config/site.yml") ... ... = site_yaml[RAILS_ENV][''use_static_banners''] ... = site_yaml[RAILS_ENV][''memcache_servers''] ...
Alex Wayne
2006-May-05 21:52 UTC
[Rails] Re: Best place for storing configuration information?
Sean Hussey wrote:> Hi all, > > Where do you store your non-Rails-specific configuration info? For > instance, I want to be able to login to LDAP as a particular admin > user. I don''t want the u/p combo in any of the models...does it go in > environment.rb? database.yml? Set a constant in a lib file? > > When you''ve got it in a good location, how do you access it? > > Thanks! > > SeanI used the Settings plugin http://wiki.rubyonrails.com/rails/pages/SettingsPlugin works very well for tracking global variables, and you can easily set different values for different environments, since they are in different databases. -- Posted via http://www.ruby-forum.com/.
Alain Ravet
2006-May-06 15:46 UTC
[Rails] Re: Best place for storing configuration information?
Sean, I added this code at the bottom of my environment.rb file: class FooConfig @@property = { :ldap_authenticator => { :port => 389, :host => ''yahoo.google.be'', :sac_dn => ''???'', :sac_passw => ''???'', :base_dn => ''???'' } } cattr_accessor :property def self.method_missing(method, *arguments) FooConfig.property[method.to_sym] end end To read the values, you''d just write port = FooConfig.ldap_authenticator[:port] host = FooConfig.ldap_authenticator[:host] though I couldn''t resist Rubyfying it a little further: #add this in the heavy LDAP settings'' user code: # implements: host(), port(), sac_dn(), sac_passw() and base_dn() def self.method_missing(method, *arguments) FooConfig.ldap_authenticator[method.to_sym] end , so you can just type port = port() host = host() Alain