Class: MongoidForm::FormBuilder
- Inherits:
-
ActionView::Helpers::FormBuilder
- Object
- ActionView::Helpers::FormBuilder
- MongoidForm::FormBuilder
- Defined in:
- lib/mongoid_form/form_builder.rb
Constant Summary collapse
- SKIP_WRAP_FOR =
[:hidden]
Instance Method Summary collapse
- #any_errors? ⇒ Boolean
- #error_message_for(name) ⇒ Object
- #error_notification ⇒ Object
- #has_error?(name) ⇒ Boolean
- #localized_field(type, attribute, options = {}) ⇒ Object
- #localized_fields(field, options = {}, &block) ⇒ Object
- #required?(method) ⇒ Boolean
Instance Method Details
#any_errors? ⇒ Boolean
42 43 44 |
# File 'lib/mongoid_form/form_builder.rb', line 42 def any_errors? @object && @object.respond_to?(:errors) && @object.errors.present? end |
#error_message_for(name) ⇒ Object
32 33 34 35 36 |
# File 'lib/mongoid_form/form_builder.rb', line 32 def (name) if any_errors? && has_error?(name) alert { get_error(name) } end end |
#error_notification ⇒ Object
26 27 28 29 30 |
# File 'lib/mongoid_form/form_builder.rb', line 26 def error_notification if any_errors? && wrapper.main_error_i18n_key.present? alert { I18n::t(*wrapper.main_error_i18n_key, model: @object.class.model_name.human, count: @object.errors.size) } end end |
#has_error?(name) ⇒ Boolean
46 47 48 49 |
# File 'lib/mongoid_form/form_builder.rb', line 46 def has_error?(name) return false unless any_errors? @object.errors.[name].present? end |
#localized_field(type, attribute, options = {}) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/mongoid_form/form_builder.rb', line 14 def localized_field(type, attribute, = {}) attribute, = value_field(attribute, ) case type when :text text_field(attribute, ) when :text_area text_area(attribute, ) else "" end end |
#localized_fields(field, options = {}, &block) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/mongoid_form/form_builder.rb', line 6 def localized_fields(field, = {}, &block) field_name = "#{field}_translations" object = @object.send(field_name).try(:empty?) ? nil : @object.send(field_name) name = "#{object_name}[#{field_name}]" @template.fields_for(name, object, &block) end |
#required?(method) ⇒ Boolean
38 39 40 |
# File 'lib/mongoid_form/form_builder.rb', line 38 def required?(method) @object && @object.class.validators_on(method).map(&:class).include?(Mongoid::Validations::PresenceValidator) end |