У меня есть четыре модели рельсов: user, school, subscription и news_item. В ситуации, когда пользователь подписывается на школу, чтобы получать уведомления о новостях из этой школы, как можно отобразить все новостные элементы, на которые подписан пользователь.
моя модель пользователя имеет это
belongs_to :school
has_many :schools, :through => :subscriptions
has_many :subscriptions
def subscribe_to(school)
subscribe = subscriptions.build(:school_id => school.id)
if !subscribe.save
logger.debug "you have already subscribed to '#{school.name}'"
end
end
after_create: create_school_subscription
def create_school_subscription
школа = self.school_street
self.subscription.build (: school_id => school.id)
конец
и моя модель подписки имеет
belongs_to :user
belongs_to :school, :class_name => 'School'
validates_uniqueness_of :school_id, :scope => :user_id
validates_presence_of :user_id, :school_id
у моей школьной модели
has_many :users
has_many :news_items
наконец-то моя модель news_item имеет
belongs_to :school
со всем этим, как я могу получить все новости, на которые подписан пользователь в школе