Class: ApplicationForm
- Inherits:
-
Object
- Object
- ApplicationForm
- Includes:
- ActiveModel::Model, ActiveModel::Validations
- Defined in:
- app/forms/application_form.rb
Direct Known Subclasses
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.all_fields ⇒ Object
5 6 7 |
# File 'app/forms/application_form.rb', line 5 def self.all_fields @all_fields ||= {} end |
.fields(model, *names) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/forms/application_form.rb', line 9 def self.fields(model, *names) unless all_fields.key? model attr_reader model define_method :"validate_#{model}!" do own = send model unless own.valid? errors..merge!(own.errors.) { |_, ary1, ary2| ary1 + ary2 } errors.details.merge!(own.errors.details) { |_, ary1, ary2| ary1 + ary2 } end end validate :"validate_#{model}!" all_fields[model] = [] end delegate *names, to: model all_fields[model] = all_fields[model] + names all_fields[model].uniq! all_fields end |
Instance Method Details
#persisted? ⇒ Boolean
34 35 36 |
# File 'app/forms/application_form.rb', line 34 def persisted? false end |
#to_h ⇒ Object
38 39 40 |
# File 'app/forms/application_form.rb', line 38 def to_h self.class.all_fields.map { |a| [a, self.send(a)] if self.respond_to?(a) }.compact.to_h end |