Module: SimpleEnum::ViewHelpers
- Defined in:
- lib/simple_enum/view_helpers.rb
Instance Method Summary collapse
-
#enum_option_pairs(record, enum, encode_as_value = false) ⇒ Object
A helper to build forms with Rails’ form builder, built to be used with f.select helper.
-
#translate_enum(record, key) ⇒ Object
(also: #te)
Helper method to return the translated value of an enum.
Instance Method Details
#enum_option_pairs(record, enum, encode_as_value = false) ⇒ Object
A helper to build forms with Rails’ form builder, built to be used with f.select helper.
f.select :gender, enum_option_pairs(User, :gender), ...
record - The model or Class with the enum enum - The Symbol with the name of the enum to create the options for encode_as_value - The Boolean which defines if either the key or the value
should be used as value attribute for the option,
defaults to using the key (i.e. false)
FIXME: check if the name ‘enum_option_pairs` is actually good and clear enough…
Returns an Array of pairs, like e.g. ‘[[“Translated key”, “key”], …]`
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/simple_enum/view_helpers.rb', line 21 def enum_option_pairs(record, enum, encode_as_value = false) reader = enum.to_s.pluralize record = record.class unless record.respond_to?(reader) record.send(reader).map { |key, value| name = record.human_enum_name(enum, key) if record.respond_to?(:human_enum_name) name ||= translate_enum_key(enum, key) [name, encode_as_value ? value : key] } end |
#translate_enum(record, key) ⇒ Object Also known as: te
Helper method to return the translated value of an enum.
translate_enum(user, :gender) # => "Frau"
Has been aliased to ‘te` as a convenience method as well.
record - The model instance holding the enum key - The Symbol with the name of the enum, i.e. same key as used in the
`as_enum` call
Returns String with translation of enum
43 44 45 |
# File 'lib/simple_enum/view_helpers.rb', line 43 def translate_enum(record, key) record.class.human_enum_name(key, record.public_send(key)) end |