Hi!

I have a model which has a field that can have three values only. I store 
the value in the database as an integer, 0, 1 or 2, but when I display it I 
want a more appropriate text. And, I want it to be translatable using i18n.

Let's say that it corresponds to how difficult something is. So, 0 
represents "Easy", 1 represents "Normal" and 2 represents "Hard".
What I did was first to define it as a hash like this:
DIFFICULTIES = { "Easy" => 0, "Normal" => 1, "Hard" => 2 }
Then I can easily pass this to, for instance, simple_form and it will 
generate a nice dropdown with the correct values.

But let's say that I have the value and want to display the text. Then I'd 
have to iterate over the hash to find which key corresponds to the right 
value. Right? Not that big of an issue when there are three values as in 
this example, but there could be more.

How do you normally handle these cases? Is there any "best practice" to 
handle this in an efficient manner?

Cheers,
Linus

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-talk/-/1fjJK_EjQ50J.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to