When to set a class attribute variable during boot


#1

I have an ActiveRecord model with a cattr_accessor. The class
attribute is set up like this:

class MyModel < ActiveRecord::Base
cattr_accessor :my_attribute
end

Because I need to give #my_attribute environment-specific values, I
try to set this attribute in environments/development.rb like so:

MyModel.my_attribute = 3

But this leads to odd and erratic behavior when #my_attribute is
called from a controller. Sometimes MyModel.my_attribute returns 3,
but sometimes it returns nil.

Any suggestions?


#2

Daniel C. wrote:

MyModel.my_attribute = 3

But this leads to odd and erratic behavior when #my_attribute is
called from a controller. Sometimes MyModel.my_attribute returns 3,
but sometimes it returns nil.

In development mode, models get reloaded on every request,
so your variable won’t persist. You’ll have to set it in
in a persistent class or module, in the global context,
or in the database or session.


Rails Wheels - Find Plugins, List & Sell Plugins -
http://railswheels.com