У меня есть 2 связанные модели:
class User < ActiveRecord::Base
has_many :notifications, foreign_key: :recipient_id
end
class Notification < ActiveRecord::Base
belongs_to :recipient, class_name: 'User'
belongs_to :actor, class_name: 'User'
belongs_to :notifiable, polymorphic: true
end
Я использую сериализатор для загрузки :user
:
class API::UserSerializer < ActiveModel::Serializer
attributes :id, :email, :auth_token, :location_id, :notifications
has_many :notifications, foreign_key: :recipient_id, each_serializer: API::NotificationSerializer
end
, которая, в свою очередь, использует сериализатор для :notifications
:
class API::NotificationSerializer < ActiveModel::Serializer
attributes :id, :recipient_id, :actor_id, :notifiable_id, :read_at, :action, :recipient, :actor, :notifiable_type
belongs_to :recipient, serializer: API::RecipientSerializer
belongs_to :actor
belongs_to :notifiable, polymorphic: true
end
Однако, API::RecipientSerializer
никогда не используется, и вместо этого возвращается целое :recipient
.Что я делаю не так?
Кроме того, вот API::RecipientSerializer
для хорошей меры:
class API::RecipientSerializer < ActiveModel::Serializer
attributes :id
end