跟随并跟随状态

时间:2017-04-07 10:17:10

标签: ruby-on-rails ruby

我正在本文https://www.railstutorial.org/book/following_users

的帮助下开展关注和跟进功能

它运行正常,但我添加了名称状态为额外的列作为布尔值,表示已接受跟随请求。 current_user.following 返回current_user的所有关系,但我需要那些关系状态为true的用户。 我的代码与提到的文章完全相同,只是我在关系表中添加了状态列。 所以请帮助我

2 个答案:

答案 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

希望它有所帮助。