Files
grecia/lib/consul_form_builder.rb
Javi Martín 4a19bb6b77 Simplify generating fields with hints
We were already using this code in translatable forms. Using it on every
form means we can reduce the code we need to generate a field with a
hint.
2019-10-06 18:03:38 +02:00

30 lines
899 B
Ruby

class ConsulFormBuilder < FoundationRailsHelper::FormBuilder
def enum_select(attribute, options = {}, html_options = {})
choices = object.class.send(attribute.to_s.pluralize).keys.map do |name|
[object.class.human_attribute_name("#{attribute}.#{name}"), name]
end
select attribute, choices, options, html_options
end
%i[text_field text_area cktext_area number_field password_field email_field].each do |field|
define_method field do |attribute, options = {}|
label_with_hint(attribute, options) +
super(attribute, options.merge(label: false, hint: false))
end
end
private
def label_with_hint(attribute, options)
custom_label(attribute, options[:label], options[:label_options]) +
help_text(options[:hint])
end
def help_text(text)
if text
content_tag :span, text, class: "help-text"
end
end
end