【发布时间】:2018-01-25 21:40:30
【问题描述】:
Rails 初学者问题。
我有一个用户表和一个团队表。
一个用户有很多团队,团队属于用户。
我想查询用户是否没有团队。 我正在使用这个查询:
User.joins(:teams).where.not(teams: {team_name: 'coconuts'})
除非用户拥有多个团队,否则此方法有效。
例如,用户 Bill 在椰子团队和面包果团队。
上面的查询会返回 Bill,因为他在椰子团队中应该被排除在外。
我明白为什么会发生这种情况,但我想不出另一个适用于这种情况的查询。
获取这些数据的正确方法是什么?
我正在使用 Rails 4。
【问题讨论】:
-
您是否尝试检查用户的团队大小,例如
@user.teams.length.zero?如果用户不属于任何团队,则返回 true,这是否解决了问题? -
嘿@AmrAdel,不幸的是,这不起作用,因为即使用户在另一个团队中,我也需要知道用户是否不在团队中。不过谢谢:)
标签: mysql ruby-on-rails activerecord