У меня есть сериализатор для моей модели Client
, который вызывает бесконечное l oop, когда я включаю has_many :referrers
в ClientSerializer
.
class Client < ActiveRecord::Base
has_many :referrals, class_name: 'Referral', foreign_key: 'referrer_id'
has_many :referrals_as_referred, class_name: 'Referral', foreign_key: 'referred_id'
has_many :referred_clients, through: :referrals, source: :referred
has_many :referrers, through: :referrals_as_referred, source: :referrer
end
class Referral < ActiveRecord::Base
belongs_to :referrer, class_name: 'Client'
belongs_to :referred, class_name: 'Client'
end
В моем сериализаторе успешно работает следующее :
class API::ClientSerializer < ActiveModel::Serializer
attributes :referrers
# has_many :referrers
has_many :referrals
def referrers
object.referrers
end
end
Но это вызывает бесконечную ошибку l oop и стека:
class API::ClientSerializer < ActiveModel::Serializer
has_many :referrers
has_many :referrals
end
Почему это происходит?