不是rails实例变量的条件

时间:2012-12-10 10:12:47

标签: ruby-on-rails

我有一个约会成员的哈希,并尝试在我的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所以也许我的exclude语句是错误的,因为我没有从这个查询中得到任何结果。问题不能是地图数组 - 我已经测试过了。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

我认为您对map方法存在问题,请尝试以下方法:

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

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

答案 1 :(得分:0)

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

@members = @appointment.members.all

然后

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

感谢您的支持