我正在本文https://www.railstutorial.org/book/following_users
的帮助下开展关注和跟进功能它运行正常,但我添加了名称状态为额外的列作为布尔值,表示已接受跟随请求。 current_user.following 返回current_user的所有关系,但我需要那些关系状态为true的用户。 我的代码与提到的文章完全相同,只是我在关系表中添加了状态列。 所以请帮助我
答案 0 :(得分:0)
我不知道原始代码,但直觉上这应该可行
current_user.following.where(status: true)
答案 1 :(得分:0)
作为https://www.railstutorial.org/book/following_users:
class User < ApplicationRecord
has_many :microposts, dependent: :destroy
has_many :active_relationships, class_name: "Relationship",
foreign_key: "follower_id",
dependent: :destroy
has_many :following, through: :active_relationships, source: :followed
.
.
.
end
所以,我认为你可以像下面这样解决你的问题:
class User < ApplicationRecord
has_many :microposts, dependent: :destroy
has_many :active_relationships, ->{ where(status: true) },
class_name: "Relationship",
foreign_key: "follower_id",
dependent: :destroy
has_many :following, through: :active_relationships, source: :followed
.
.
.
end
希望它有所帮助。