0

我有一个约会成员的哈希值,并尝试在我的 rails 控制器中创建一个 MySQL 查询。具有来自 map 命令的 ID 的用户(例如 {1,3})应在查询中排除。例如@appointment.members.map{|m| m.user_id} 返回 {1,3,5} 我想找到除这些之外的所有其他用户。

@users = User.where( "id NOT IN (?)", @appointment.members.map{|m| m.user_id} )

我使用的是 Rails 3.2.9,所以我的排除语句可能是错误的,因为我没有从这个查询中得到任何结果。问题不可能是地图数组——我已经测试过了。提前致谢。

4

2 回答 2

1

我认为您的map方法有问题,试试这个:

@users = User.where( "id NOT IN (?)", @appointment.members.map(&:user_id) )

编辑:为未来的读者删除了错误的语法(如果有)

于 2012-12-10T10:26:58.780 回答
0

我用一个新的实例变量解决了这个问题:

@members = @appointment.members.all

接着

@add_users = User.where( "id NOT IN (?)", @members.map(&:user_id) )

感谢您的支持

于 2012-12-10T12:06:22.880 回答