Storing a static array

In the spirit of keeping my app DRY, i would like to store an array of
strings, and call this array in a few views and possibly in my
controller.

Where is the best place to declare an application wide static variable?
And is this possible?

array = [‘why should’, ‘I have to copy this’, ‘every time i want to use
it’]

Well, if it’s not going to change, you make it a constant.
Constants in ruby are in uppercase.
MY_ARRAY = [‘why should’, ‘I have to copy this’, ‘every time i want
to use > it’]
Normally this should be enough, but if you want to go extra safe you
can freeze it, since an array is an object (http://www.ruby-doc.org/
core/classes/Object.html#M000354).

where to put it in Rails: one option is to declare it in a file in the
lib directory. Rails loads what is in lib.
To make sure it will never conflict with any other, you could put it
into a module, and call it as
ModuleName::MY_ARRAY

Elise

you’re right, that is cleaner.

unless you really want an array, for some reason

You can also look at using an external configuration file instead of
constants:
http://www.stephenbartholomew.co.uk/2008/8/22/simple-application-wide-configuration-in-rails.
Check out the comments for further ideas.

Steve

Thanks a bunch for the help, for now its just one array, but sooner or
later i’m sure I’ll want to branch out to your yml solution. Appreciate
the help!!!

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs