Best practice on global settings

I have a Rails site that needs to have global access to some settings
which I would like to set in a separate file, e.g. the location of a
companion server. I have done this in a couple of ways but none of
them seems to be very elegant or Ruby-like. Does anyone have any input
on the best practice of dealing with data of this kind.

Thanks in advance

Erik Lindblad

Thank you for the suggestion. I tried environment.rb but I think it is
not a nice solution because of the discrepancy in data types. The
settings in environment.rb is mostly directives on hov the server
should act and updates require restarting the server. What I would
like is a separate file for settings regarding the application itself,
not the server on which it is run. A trivial difference perhaps, but I
think it is an important one. I don't like setting the preferred
graphics format for user uploads in the same place as where I set e.g.
which parts of Rails to use. I will use this solution if there are no
good alternatives but I have a feeling there are.

Regards

Erik

I create a module in lib folder with some text constants.

Hi

This sounds interesting. Could you give a more detailed example. Do
you use module variables or module instance variables, where do you
include it and so on. Do you know of any articles on this subject. I
would be very thankful for the assistance.

Kindest regards

Erik

Hi

This sounds interesting. Could you give a more detailed example. Do
you use module variables or module instance variables, where do you
include it and so on. Do you know of any articles on this subject. I
would be very thankful for the assistance.

Kindest regards

Erik

some time ago, somebody suggested searching ageilwebdev.com on
"settings", it works:

http://agilewebdevelopment.com/plugins/search?search=settings

lib\somefile.rb

module MySettingsContainer
SOMETEXT = "SOME TEXT VALUE"
end

controller

requere "somefile.rb" (or require lib/somefile.rb)

class AAA < AplicationController
include MySettingsContainer # i think it's not needed

def index
@result = MySettingsContainer::SOMETEXT
end

end

Many thanks, I will try that.

/Erik

How about:

- Use the app_config plugin to get a nice syntax
- Add a line in config/environment.rb to 'require application'
- Put the app_config stuff in config/application.rb

I think that'll work, unless 'require application' ends up loading one of
the other application.rb files due to load path order, in which case you
should be able to do something like require "#{config_dir}/application".