В настоящее время я настраиваю канал с нуля, когда пользователь подписывается на несколько досок объявлений и получает все сообщения, созданные под этой доской.Вот как у меня написан мой код:
class User < ApplicationRecord
has_many :subscriptions, dependent: :destroy
has_many :boards, through: :subscriptions
end
class Subscription < ApplicationRecord
belongs_to :user
belongs_to :board
end
class Board < ApplicationRecord
has_many :subscriptions, dependent: :destroy
has_many :subscribers, through: :subscriptions, source: :user
end
class Post < ApplicationRecord
belongs_to :board
belongs_to :user
end
Когда приходит время отображать посты, у меня возникают проблемы с точки зрения правильного подхода.Будет ли простым решением установить другую ассоциацию HMT в пользовательской модели следующим образом?
has_many :subscribed_posts, through: :boards, source: :posts
В моем подходе есть один непосредственный недостаток, заключающийся в том, что пользователь будет отображать свои сообщения, в том числе других пользователей.,Лучшим решением было бы создать какой-то SQL-запрос?