Вы должны изменить свою ассоциацию на отношения has_many :through
. Таким образом, у вас есть модель, которая ссылается на обе модели.
class Magazine < ActiveRecord::Base
has_many :users, :through => :subscriptions
end
class User < ActiveRecord::Base
has_many :magazines, :through => :subscriptions
end
class Subscription < ActiveRecord::Base
belongs_to :user
belongs_to :magazine
end
Теперь вы можете проверить, кому Subscriptions
a User
принадлежит вот так ...
User.find(current_user.id).subscriptions # => Returns a list of Magazine id's
И вы можете проверить, имеет ли User
значение от Magazine
до Subscription
, например ...
User.find(current_user.id).subscriptions.find_by_magazine_id(1).any?