看过的帖子反向关系Rails

时间:2018-11-01 06:22:11

标签: ruby-on-rails ruby-on-rails-5

因此,我正在创建一个类似Rails应用程序的社交媒体,其中包含用户创建的帖子。而且我想在其中添加“查看者”功能。

基本上,我想创建一个关系 用户模型中的has_many :seen_posts。在live_feed表中还有一个has_many :seen_by

但是我想通过仅创建一个联接表来进行管理。每次用户单击该帖子时,都会调用一个api,并将该帖子附加到用户的seen_posts数组中。当我致电@user.seen_posts时,就会反映出来。

但是,如果我打电话给@post.seen_by,该如何逆转以获得相同的结果。 创建第二个连接表并同时附加两个表似乎并不正确

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法解决此问题:

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"

使用这种方法,您需要使用“关系”表和相应的外键生成迁移。