在 ActiveModel Serializer 中覆盖关联 - returns 所有属性而不是序列化对象属性
Overriding association in ActiveModel Serializer - returns all attributes instead of serialized object attributes
我有 2 个模型:Repository
和 Branch
,它们都有相应的序列化器。
在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
returns 所有分支都正确序列化并且只包含 id
和 name
属性,但是 default_branch
returns 所有该分支的属性。
在这种情况下有什么方法可以利用现有的 BranchSerializer
还是我自己应该 return 方法 default_branch
.
中所需的属性
如有任何帮助,我们将不胜感激。
您正在将 default_branch
作为属性序列化,因此 BranchSerializer
不会生效。
添加
has_one :default_branch do
object.branches.find_by_name(object.default_branch)
end
我有 2 个模型:Repository
和 Branch
,它们都有相应的序列化器。
在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
returns 所有分支都正确序列化并且只包含 id
和 name
属性,但是 default_branch
returns 所有该分支的属性。
在这种情况下有什么方法可以利用现有的 BranchSerializer
还是我自己应该 return 方法 default_branch
.
如有任何帮助,我们将不胜感激。
您正在将 default_branch
作为属性序列化,因此 BranchSerializer
不会生效。
添加
has_one :default_branch do
object.branches.find_by_name(object.default_branch)
end