覆盖ActiveModel Serializer中的关联 - 返回所有属性而不是序列化对象属性

时间:2016-03-19 06:41:10

标签: ruby-on-rails ruby-on-rails-4 active-model-serializers

我有两个型号: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返回所需的属性。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

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