我的序列化程序中存在has_one
关系,但设置root: :some_other_root
似乎没有任何区别。我在文档中看到他们只使用root
名称has_many
。所以问题是可能在has_one
上有不同的根名称吗?
下式给出:
class UserSerializer < ActiveModel::Serializer
attributes :id
has_one :address, root: :primary_address
end
返回:
{"user":{"id": 12, "address":{"id":5,"company_name":"widgets co"}}}
预期:
{"user":{"id": 12, "primary_address":{"id":5,"company_name":"widgets co"}}}
答案 0 :(得分:9)
如果它将作为用户属性的一部分包含在内,请使用key
代替root
。宝石仓库中有一个thorough explanation on how to embed associations。示例如下所示:
在序列化程序中:
attribute :title, key: :name
#attributes:{ name: 'Some Title' }