我有一个用户列表的rails对象数组和另一个team_users列表的对象数组
我想显示不在team_users中但不确定如何进行操作的用户列表。
在我的代码中
User.where("users.user_account_type IS NULL or users.user_account_type = 'standard_user'").joins(:user_organizations).where("user_organizations.organization_id = ? AND users.approved = true AND users.locked_at IS NULL", 13)
此代码返回给我一个用户列表
@team_members = TeamMember.all
这将返回team_members中所有用户。此表将team_member_id作为User表中user.id的外键。
User.where("users.user_account_type IS NULL or users.user_account_type = 'standard_user'").joins(:user_organizations).where("user_organizations.organization_id = ? AND users.approved = true AND users.locked_at IS NULL", 13).joins(:team_members).where("team_members.team_member_id != users.id")
我尝试使用此代码,但它不起作用。它不返回任何记录。
感谢任何帮助
答案 0 :(得分:0)
我不确定你想要什么,但这只返回没有team_users帐户typ的用户。
User.All.Where(x=>x.Users.user_account_type !="team_users")
答案 1 :(得分:0)
这样的事情应该有效:
in_teams = TeamMember.select(:team_member_id)
users_without_team = User.where.not(id: in_teams)
另外,为了便于阅读,您可以使用哈希而不是字符串:
Users.joins(:user_organization).where(approved: true, locked_at: nil, user_organizations: {organization_id: 13})