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 })