Class: MongoidForm::FormBuilder

Inherits:
ActionView::Helpers::FormBuilder
  • Object
show all
Defined in:
lib/mongoid_form/form_builder.rb

Constant Summary collapse

SKIP_WRAP_FOR =
[:hidden]

Instance Method Summary collapse

Instance Method Details

#any_errors?Boolean

Returns:

  • (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 error_message_for(name)
  if any_errors? && has_error?(name)
    alert { get_error(name) }
  end
end

#error_notificationObject



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

Returns:

  • (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.messages[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, options = {})
  attribute, options = value_field(attribute, options)
  case type
  when :text
    text_field(attribute, options)
  when :text_area
    text_area(attribute, options)
  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, options = {}, &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

Returns:

  • (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