activemodel序列化程序has_one具有自定义根名称

cha*_*etm 4 ruby ruby-on-rails active-model-serializers ruby-on-rails-4

has_one在序列化程序中有一段关系,但设置root: :some_other_root似乎没有任何区别.我在文档中看到他们只使用了不同的root名称has_many.所以问题是是否可以使用不同的根名称has_one

给定:

class UserSerializer < ActiveModel::Serializer
  attributes :id
  has_one :address, root: :primary_address
end
Run Code Online (Sandbox Code Playgroud)

收益:

{"user":{"id": 12, "address":{"id":5,"company_name":"widgets co"}}}
Run Code Online (Sandbox Code Playgroud)

预期:

{"user":{"id": 12, "primary_address":{"id":5,"company_name":"widgets co"}}}
Run Code Online (Sandbox Code Playgroud)

jvn*_*ill 9

使用key而不是root将其作为用户属性的一部分包含在内.有关如何在gem repo中嵌入关联详细说明.示例如下所示:

在Serializer中: attribute :title, key: :name
#attributes: { name: 'Some Title' }