繁体   English   中英

活动模型序列化器嵌套关联无问题

[英]Active model serializer nested association nil issue

我有以下协会

class User < ActiveRecord::Base
  has_one :book 
end

class Book < ActiveRecord::Base
  has_many :pages
end

我的序列化器看起来像:

user_serializer.rb

class UserSerializer < ActiveModel::Serializer
  ...
  has_one :book, serializer: BookSerializer  
end

book_serializer.rb

class BookSerializer < ActiveModel::Serializer
  ...
  has_many :pages
end

现在,当我尝试序列化没有书的用户对象时,它会引发一个错误,指出undefined method pages for nil class 如何添加允许序列化书籍的条件,如果它不是零?

你可以用以下东西来装饰你的联想:

has_one :book, serializer: BookSerializer  

def book
   if object.book
     BookSerializer.new(object.book)    
   end
end

如果那不是您想要的,那就告诉我了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM