module ViewModel::ActiveRecord::NestedControllerBase

def show_association(scope: nil, serialize_context: new_serialize_context, lock_owner: nil)

def show_association(scope: nil, serialize_context: new_serialize_context, lock_owner: nil)
  require_external_referenced_association!
  associated_views = nil
  pre_rendered = owner_viewmodel.transaction do
    owner_view = owner_viewmodel.find(owner_viewmodel_id, eager_include: false, lock: lock_owner)
    ViewModel::Callbacks.wrap_serialize(owner_view, context: serialize_context) do
      # Association manipulation methods construct child contexts internally
      associated_views = owner_view.load_associated(association_name, scope: scope, serialize_context: serialize_context)
      associated_views = yield(associated_views) if block_given?
      child_context = owner_view.context_for_child(association_name, context: serialize_context)
      prerender_viewmodel(associated_views, serialize_context: child_context)
    end
  end
  render_json_string(pre_rendered)
  associated_views
end