2016-09-21 17 views
3

Iましアクティブモデルシリアライザネストされた関連付けはnil問題

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でない場合にのみ本をシリアライズできる条件を追加するにはどうすればよいですか?

答えて

0

あなたのようなものを使用して関連付けを飾ることができます:それはそれはあなたが

探しているものではありませんなら、私に知らせています

has_one :book, serializer: BookSerializer 

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

関連する問題