在 PostSerializer#raw 中调用 super 导致 500 错误,而调用 object.raw 却可以工作的原因是什么?

感谢您的解释!
您说得对——重新打开 ::PostSerializer 是问题所在。改用 prepend 后,一切都按预期工作了。

我现在使用的是这个模块:

module PostSerializerExtension
  def raw
    if scope.can_edit?(object)
      super
    else
      object.raw&.truncate(300)
    end
  end
end

reloadable_patch do
  require_dependency "post_serializer"
  ::PostSerializer.prepend(::PostSerializerExtension)
end

这在我这边完美运行。再次感谢您的指导!