因此,我正在创建一个类似Rails应用程序的社交媒体,其中包含用户创建的帖子。而且我想在其中添加“查看者”功能。
基本上,我想创建一个关系
用户模型中的has_many :seen_posts
。在live_feed表中还有一个has_many :seen_by
。
但是我想通过仅创建一个联接表来进行管理。每次用户单击该帖子时,都会调用一个api,并将该帖子附加到用户的seen_posts数组中。当我致电@user.seen_posts
时,就会反映出来。
但是,如果我打电话给@post.seen_by
,该如何逆转以获得相同的结果。
创建第二个连接表并同时附加两个表似乎并不正确
答案 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"
使用这种方法,您需要使用“关系”表和相应的外键生成迁移。