Class: ActiveForm::Definition
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#bound_value?, #define_localizer, #description, #export_value, #get_bound_value, included, #label, #localize, #localized?, #localizer, #set_bound_value, #submitted?, #title, #update_from_params, #update_value, #validated?
#accept_block, #contained?, #default_value, #define_formatting_filter, #define_freeze_filter, #description, #disabled?, #element_attributes, #element_binding, #element_binding_key, #element_name, #element_type, #element_value, #element_value=, #export_value, #fallback_value, #fallback_value=, #format_value, #formatted_value, #freeze_element, #freeze_value, #frozen?, #frozen_value, #frozen_value=, #hidden?, #hide_element, #identifier, included, #label, #labelled?, #localize, #localized?, #readonly?, #register_container, #required=, #required?, #reset_formatting_filter, #reset_freeze_filter, #revert_value, #title, #update_options_and_attributes
Instance Attribute Details
#model_instance ⇒ Object
Returns the value of attribute model_instance.
4
5
6
|
# File 'lib/rails/model/loader.rb', line 4
def model_instance
@model_instance
end
|
Class Method Details
.element_type ⇒ Object
68
69
70
|
# File 'lib/active_form/definition.rb', line 68
def self.element_type
:form
end
|
Instance Method Details
#clear_validations! ⇒ Object
6
7
8
9
|
# File 'lib/rails/model/loader.rb', line 6
def clear_validations!
super
model_instance.errors.clear if model_instance.respond_to?(:errors)
end
|
#default_attributes ⇒ Object
58
59
60
61
62
|
# File 'lib/active_form/definition.rb', line 58
def default_attributes
attrs = { :id => identifier, :class => css }
attrs[:enctype] = 'multipart/form-data' if multipart?
attrs
end
|
30
31
32
33
34
35
|
# File 'lib/active_form/definition.rb', line 30
def
html = "</form>\n"
html << script_tag
html << "<!--x" + "[ #{identifier} ]".center(32, 'x') + "x-->\n"
html
end
|
23
24
25
26
27
28
|
# File 'lib/active_form/definition.rb', line 23
def (include_advice = false)
html = "<!--o" + "[ #{identifier} ]".center(32, 'o') + "o-->\n"
html << "<form #{element_attributes.as_attributes_string}>\n"
html << validation_advice.to_s if include_advice
html
end
|
#initialize_element(*args) ⇒ Object
17
18
19
20
21
|
# File 'lib/active_form/definition.rb', line 17
def initialize_element(*args)
super
self.action ||= "##{self.name}"
self.method ||= 'post'
end
|
#label_attributes ⇒ Object
64
65
66
|
# File 'lib/active_form/definition.rb', line 64
def label_attributes
{ :class => label_css }
end
|
#render_element(builder = create_builder) ⇒ Object
46
47
48
49
50
51
52
|
# File 'lib/active_form/definition.rb', line 46
def render_element(builder = create_builder)
if contained?
render_elements(builder)
else
builder.form(element_attributes) { render_elements(builder) }
end
end
|
#render_elements(builder = create_builder, &block) ⇒ Object
54
55
56
|
# File 'lib/active_form/definition.rb', line 54
def render_elements(builder = create_builder, &block)
elements.each { |elem| elem.to_html(builder, &block) }
end
|
#render_frozen(builder = create_builder) ⇒ Object
42
43
44
|
# File 'lib/active_form/definition.rb', line 42
def render_frozen(builder = create_builder)
builder.form(element_attributes) { render_elements(builder) }
end
|
#render_label(builder = create_builder) ⇒ Object
Also known as:
to_label
37
38
39
|
# File 'lib/active_form/definition.rb', line 37
def render_label(builder = create_builder)
builder.span(label, label_attributes)
end
|
#validate_element ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/rails/model/loader.rb', line 11
def validate_element
super
code_lookup = ActiveRecord::Errors.default_error_messages.invert
if model_instance.respond_to?(:valid?) && model_instance.respond_to?(:errors)
unless model_instance.valid?
errors_on_base = [*model.instance.errors.on_base] rescue []
errors_on_base.each { |msg| self.errors.add(msg, 'ar_base') unless msg.blank? }
model_instance.errors.each do |attr, msg|
if elem = self[attr]
code = code_lookup.key?(msg) ? code_lookup[msg] : 'elem'
msg = "%s: #{msg}" unless code == 'elem'
elem.errors.add(elem.format_message(msg), "ar_#{code}")
end
end
end
end
end
|