[Rails] Creating a model that acts as a settings manager

Iván Vega Rivera ivanvega at gmail.com
Fri Jan 6 01:03:12 GMT 2006


Thanks for your insight, I think I'll go with it.

Ivan V.

Chris Hall wrote:
> i might suggest using the magic 'type' column instead of group
>
> id int PK
> name varchar(40)
> type varchar(40) #magic column
> value varchar(40)
>
> class Setting < AR::Base
> end
>
> class  MainSetting < Setting
> end
>
> class UserSetting < Setting
> end
>
> class SomeOtherSetting < Setting
> end
>
> # and so on for all your setting types
>
> a = MainSetting.create(:name => "something", "value" => "34")
> b = UserSetting.find_by_name("expire") # a.value = 45
>
> I'm not saying what you want to do can or cannot be done, I just think 
> it would be more work than just doing it the 'Rails Way'
>
> Chris
>
> On 1/4/06, *Iván Vega Rivera* <ivanvega at gmail.com 
> <mailto:ivanvega at gmail.com>> wrote:
>
>     Hi,
>
>     I was wondering how could you create a model that is tied to all the
>     records in one table, and retrieves the values of all records on first
>     load, and also handles the updating of its values.
>
>     For example, suppose I have this table:
>
>     id INT(11) PK
>     group CHAR(40)
>     name CHAR(40)
>     value CHAR(128)
>     updated_at DATETIME
>
>     Sample rows:
>     group   name   value
>     ---------------------------
>     main   something   123
>     users   expire   45
>
>     Then, I'd like very much to do something like this in Rails:
>
>     Settings.main.something = 34
>     a = Settings.users.expire
>
>     And also being able to override default behaviors, because maybe I'd
>     want to do something special each time a specific setting is changed.
>
>     Currently, I'm just defining a method for each setting, but I keep
>     thinking there must be a better way.
>
>     Thanks in advance!
>
>     - Ivan V.
>
>     _______________________________________________
>     Rails mailing list
>     Rails at lists.rubyonrails.org <mailto:Rails at lists.rubyonrails.org>
>     http://lists.rubyonrails.org/mailman/listinfo/rails
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Rails mailing list
> Rails at lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails
>   




More information about the Rails mailing list