class ViewModel::ActiveRecord::NestedControllerBase::ParentProxyModel
Attributes
association_data[R]
changed_children[R]
parent[R]
Public Class Methods
new(parent, association_data, changed_children)
click to toggle source
# File lib/view_model/active_record/nested_controller_base.rb, line 16 def initialize(parent, association_data, changed_children) @parent = parent @association_data = association_data @changed_children = changed_children end
Public Instance Methods
serialize(json, serialize_context:)
click to toggle source
# File lib/view_model/active_record/nested_controller_base.rb, line 22 def serialize(json, serialize_context:) ViewModel::Callbacks.wrap_serialize(parent, context: serialize_context) do child_context = parent.context_for_child(association_data.association_name, context: serialize_context) json.set!(ViewModel::ID_ATTRIBUTE, parent.id) json.set!(ViewModel::BULK_UPDATE_ATTRIBUTE) do if association_data.referenced? && !association_data.owned? if association_data.collection? json.array!(changed_children) do |child| ViewModel.serialize_as_reference(child, json, serialize_context: child_context) end else ViewModel.serialize_as_reference(changed_children, json, serialize_context: child_context) end else ViewModel.serialize(changed_children, json, serialize_context: child_context) end end end end