Create a flexible, localized list of Ruby-on-Rails values

I have a list of values ​​(Beginner, Intermediate, Advanced, Fluent, Native) that I would like:

  • acts as a model for a SELECT list
  • acts as a model for converting identifiers to values ​​in an HTML table
  • use in multiple controllers and views
  • save in the order that stores business rules (sorted by skill level)
  • localize at some point in the future

Is there a way to implement this list to address all or most of my needs?

+5
source share
1 answer

You can put the array definition in / config / locales / some _language.yml

, en.yml

en:
   experience_levels: 
          1: Beginner 
          2: Intermediate
          3: Advanced 
          4: Fluent
          4: Native

, :

def experience_levels 
    I18n.t(:experience_levels).map { |key, value| [ value, key ] } 
end

, form_for

<%= f.select :experience_levels, experience_levels %>

form_tag, :

<%= select_tag :experience_levels, options_for_select(experience_levels) %>
+9

All Articles