Constants and Configurations

Hi,

Right now I have some Constants in my application that serve as
configurations for my application. I would like to make these
configurations "editable" by the users/admins through views.

What is the best strategy to do this?

Put them in the database.

Colin

Hi Colin,

I see how could that go, but what If my configurations are of different types?

Is there a gem that provides some helper methods that you could recommend?

I am using rails 3.

Tiago Veloso
ti.veloso@gmail.com

Hi Colin,

I see how could that go, but what If my configurations are of different types?

I don't understand what you mean.

Is there a gem that provides some helper methods that you could recommend?

I don't know of one. It hardly seems worthwhile for a table with one
record and whatever fields you want. Perhaps I don now understand
your comment above. You are thinking of one row per item. Instead
make it one record with a field for each constant of whatever type is
appropriate.

Colin

I am understanding better what you mean.

I was referring to if you have a config that is of boolean type, another config that is integer and another that is of float type. I was picturing one table per type.

Tiago Veloso
ti.veloso@gmail.com

I am understanding better what you mean.

Please don't top post, it makes it difficult to follow the thread.
Insert your reply at appropriate points in the previous message.
Thanks

I was referring to if you have a config that is of boolean type, another config that is integer and another that is of float type. I was picturing one table per type.

As I suggested in my previous post, have one table with a single row
and a field for each configuration value.

Colin

Hi Tiago,

I don't know the details of your problem but you might wanna look into
a NoSQL solution. It will add some overhead in setting it up but it
could be a nice fit for your problem.
I don't have a complete overview of all NoSQL solutions but Redis or
MongoDB should be a good fit.

That said, you will most likely be able to do anything you need with a
regular relational DB (as laid out by Colin). It really depends on
your overall problem set if it makes sense to add something new into
your system.

Hope that helps!

Simon

I believe I know what you are trying to ask. I had to setup something
similar for an application of mine. I have one table with one column
for each value type (boolean_value, string_value, integer_value,
decimal_value and datetime_value) and a 'code' column for values such
as 'timeout minutes'.

In my maintenance pages I have the code field and 5 other fields, one
for each column type. So far I have not used the datetime_value field
but you never know. I validate that one and only one of the "value"
fields is entered and make sure that if the chosen field is the
boolean_value one it is either true or false to avoid mistakes such as
the user not entering any values on the screens and pressing Enter.
Another thing I am doing for security purposes is that once the record
has been created the user must 'unlock' the code field in the editable
pages to be able to change it and when he/she does an alert is
displayed saying that if the code value is changed the application
might stop working.

I hope this helps.