【问题标题】:Active model serializer nested association nil issue活动模型序列化程序嵌套关联无问题
【发布时间】:2017-01-29 14:59:24
【问题描述】:

我有以下关联

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。如何添加一个条件,仅当它不是 nil 时才允许序列化书籍?

【问题讨论】:

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


    【解决方案1】:

    您可以使用以下内容来装饰您的关联:

    has_one :book, serializer: BookSerializer  
    
    def book
       if object.book
         BookSerializer.new(object.book)    
       end
    end
    

    就是这样,如果这不是您要找的,请告诉我

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多