Module: Tramway::Admin::InputsHelper
- Included in:
- ApplicationHelper
- Defined in:
- app/helpers/tramway/admin/inputs_helper.rb
Instance Method Summary collapse
- #association_params(form_object:, property:, value:, object:) ⇒ Object
- #polymorphic_association_params(object:, form_object:, property:, value:) ⇒ Object
Instance Method Details
#association_params(form_object:, property:, value:, object:) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'app/helpers/tramway/admin/inputs_helper.rb', line 4 def association_params(form_object:, property:, value:, object:) full_class_name_association = form_object.class.full_class_name_association(property) { label: false, input_html: { name: "#{object}[#{property}]", id: "#{object}_#{property}", value: (form_object.send(property) || form_object.model.send("#{property}_id") || value) }, selected: (form_object.model.send("#{property}_id") || value), collection: full_class_name_association.active.map do |obj| decorator_class(full_class_name_association).decorate obj end } end |
#polymorphic_association_params(object:, form_object:, property:, value:) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/helpers/tramway/admin/inputs_helper.rb', line 20 def polymorphic_association_params(object:, form_object:, property:, value:) full_class_names = form_object.model.class.send("#{property}_type").values.map &:constantize collection = full_class_names.map do |class_name| class_name.active.map do |obj| decorator_class(class_name).decorate obj end end.flatten { as: :select, label: false, input_html: { name: "#{object}[#{property}]", id: "#{object}_#{property}", value: (form_object.send(property) || form_object.model.send("#{property}_id") || value) }, selected: (form_object.model.send("#{property}_id") || value), collection: collection, label_method: lambda do |obj| "#{obj.class.model_name.human} | #{obj.name}" end } end |