Method: Rubyists::Linear::BaseModel::ClassMethods#many_setter!
- Defined in:
- lib/linear/models/base_model/class_methods.rb
#many_setter!(relation, klass) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/linear/models/base_model/class_methods.rb', line 34 def many_setter!(relation, klass) define_method "#{relation}=" do |val| vals = if val&.key?(:nodes) val[:nodes] else Array(val) end updated_data[relation] = vals.map { |v| v.is_a?(Hash) ? v : v.updated_data } new_relations = vals.map { |v| v.is_a?(Hash) ? Rubyists::Linear.const_get(klass).new(v) : v } instance_variable_set("@#{relation}", new_relations) end end |