Sql Rails有许多直通查询,有两个引用,即使用直通表属性

Sql Rails有许多直通查询,有两个引用,即使用直通表属性,sql,ruby-on-rails,ruby,ruby-on-rails-5,Sql,Ruby On Rails,Ruby,Ruby On Rails 5,我正在寻找一种方法来查询一个模型的基础上,儿童在一个有很多通过关联 我有这些模型 class User < ApplicationRecord has_many :members has_many :squads, through: :members end class Squad < ApplicationRecord has_many :members has_many :users, through: :members end class Member &l

我正在寻找一种方法来查询一个模型的基础上,儿童在一个有很多通过关联

我有这些模型

class User < ApplicationRecord
  has_many :members
  has_many :squads, through: :members
end

class Squad < ApplicationRecord
  has_many :members
  has_many :users, through: :members
end

class Member < ApplicationRecord
  belongs_to :user
  belongs_to :squad
end

主线是

参数[:用户]。是否存在?%>

也尝试过一些东西,比如

User.includes:squads,:members.where'squads.id=?和members.users=?',团队,当前用户

u=squad.users.includes:member.where'member.user=?',当前用户

Member.where.notsquad={squad.id}.finduser:current_user.id

我为每个|团队|提供了一个实例变量,并为使用

参考

说明:

查询不属于任何小组的没有成员记录的用户

User.includes(:members).where.not(members: { squad_id: squad.id })
查询具有成员记录但不是目标团队成员的用户

说明:

查询不属于任何小组的没有成员记录的用户

User.includes(:members).where.not(members: { squad_id: squad.id })

查询具有成员记录但不是目标小组成员的用户。

如果登录的用户不是每个小组的成员,是否显示该按钮?如果是的话

has_many association提供了方法other_ID,该方法返回case squad.user_ID中关联对象的ID数组。因此,您可以检查当前用户的id是否在该数组中:


如果登录用户不是每个小组的成员,是否要显示该按钮?如果是的话

has_many association提供了方法other_ID,该方法返回case squad.user_ID中关联对象的ID数组。因此,您可以检查当前用户的id是否在该数组中:

User.includes(:members).where(members: { id: nil })
User.includes(:members).where.not(members: { squad_id: squad.id })