Module: KonoUtils::ApplicationEnumHelper
- Defined in:
- lib/kono_utils/application_enum_helper.rb
Overview
Racchiudo helpers per gestire gli enum
Instance Method Summary collapse
-
#enum_collection(model, attribute, variant = nil) ⇒ Hash
Genera l’hash da passare come collection alle selectbox, esegue anche la traduzione con locale.
-
#enum_translation(model, attribute, value, variant = nil) ⇒ String
Si occupa di tradurre un determinato valore di un enum.
Instance Method Details
#enum_collection(model, attribute, variant = nil) ⇒ Hash
Genera l’hash da passare come collection alle selectbox, esegue anche la traduzione con locale
<%= f.input :usage, :as => :select,
:collection => enum_collection(Logo, :usage), :input_html => {:include_blank => true} %>
17 18 19 20 21 22 |
# File 'lib/kono_utils/application_enum_helper.rb', line 17 def enum_collection(model, attribute, variant=nil) model.send(attribute.to_s.pluralize(2).to_sym).collect {|key, val| [enum_translation(model, attribute, key, variant), key] }.to_h end |
#enum_translation(model, attribute, value, variant = nil) ⇒ String
Si occupa di tradurre un determinato valore di un enum
Le traduzioni dentro al locale devono essere fatte in questo modo: it:
activerecord:
attributes:
estimate_before/value:
na: NA
very_insufficient: 1
insufficient: 2
sufficient: 3
excellent: 4
dove in questo caso estimate_before è il modello e value è il nome del campo enum
45 46 47 48 49 |
# File 'lib/kono_utils/application_enum_helper.rb', line 45 def enum_translation(model, attribute, value, variant=nil) return '' if value.nil? variant = "_#{variant}" unless variant.nil? model.human_attribute_name("#{attribute}.#{value}#{variant}") end |