重写 ActiveModel 序列化程序中的关联 - 返回所有属性而不是序列化的对象属性



我有2个模型:RepositoryBranch,两者都有相应的序列化程序。

RepositorySerializer中,我想列出一个默认分支。这是我的做法:

attributes :id, :name, :ssh_url, :default_branch
has_many :branches
def default_branch
  object.branches.find_by_name(object.default_branch)
end

BranchSerializer,我有:

attributes :id, :name

branches 返回正确序列化且仅包含 idname 属性的所有分支,但default_branch返回该分支的所有属性。

在这种情况下,有没有办法利用现有的BranchSerializer,或者我自己应该从方法 default_branch 返回所需的属性。

任何帮助将不胜感激。

您正在将default_branch序列化为属性,因此BranchSerializer不会启动。加

  has_one :default_branch do
    object.branches.find_by_name(object.default_branch)
  end

最新更新