Видимые сообщения Рельсы обратной связи - PullRequest
0 голосов
/ 01 ноября 2018

Итак, я создаю приложение для социальных сетей, такое как rails, где у вас есть сообщения, созданные пользователями. И я хочу добавить в него функцию «видел».

В принципе, я хочу создать отношения, где у меня есть has_many :seen_posts в модели пользователей. И has_many :seen_by в таблице live_feed.

Но я хочу справиться с этим, создав только одну таблицу соединений. Каждый раз, когда пользователь нажимает на сообщение, вызывается API, и сообщение добавляется к массиву seen_posts пользователей. И это отражается, когда я звоню @user.seen_posts.

Но как мне обратить это, чтобы получить тот же результат, если я позвоню @post.seen_by. На самом деле кажется неправильным создавать вторую таблицу соединений и добавлять их одновременно

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете решить это, используя множество через:

user.rb

has_many :seen_posts, through: :relationships, source: :seen_post

live_feed.rb

has_many :seen_by, through: :relationships, source: :user_seeing

relationship.rb

belongs_to :user_seeing, class_name: "User"
belongs_to :seen_post, class_name: "Live_Feed"

При таком подходе вам нужно сгенерировать миграцию с таблицей "взаимосвязей" и соответствующими внешними ключами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...