如何选择除ids之外的所有用户

时间:2014-10-31 18:43:35

标签: ruby-on-rails activerecord

我有模型用户

获取

params[:ids]

对于那些不需要

的用户

看过类似的

User.where.not(id: params[:id])

这很酷!但身份但不是ids :(工作

3 个答案:

答案 0 :(得分:2)

假设您正在执行GET /users?ids[]=1&ids[]=2&ids[]=3之类的请求,那么您的路径正确:

User.where.not(id: params[:ids])

User.where.not(id: [1,2,3]) 翻译成 我在ruby 2.1.3 rails 4.1.6的测试中SELECT COUNT(*) FROM "users" WHERE ("users"."id" NOT IN (1, 2, 3))

答案 1 :(得分:1)

尝试:

User.where.not(id: params[:ids])

此处params是请求期间发送给服务器的参数,然后可以使用密钥访问params中的值,在您的情况下:idsparams[:ids]不是:idparams[:id])。

答案 2 :(得分:1)

这可能对您有用:

User.where("id NOT in (#params[:ids])") 

例如:

User.where("id NOT in (2,3,4)")