Rails以限制顺序获取并且“不”

时间:2014-07-07 19:13:11

标签: ruby-on-rails ruby ruby-on-rails-4

在我的应用程序中,我使用rails 4。

我需要像现在一样获取数据,但除了一个params [:id]之外,现在我都有这样的代码:

@vip_cars = Car.order(created_at: :desc, is_vip: :desc).limit(100).sample(4)

我试着像:

@vip_cars = Car.order(created_at: :desc, is_vip: :desc).not(id: params[:id]).limit(100).sample(4)

但它没有用。我做错了什么?如何通过订单,限制,采样而不是在轨道4中获取数据?

1 个答案:

答案 0 :(得分:5)

你应该写为

Car.order(created_at: :desc, is_vip: :desc)
   .where.not(id: params[:id])
   .limit(100).sample(4)

阅读#not

  

根据参数中的条件返回表达WHERE + NOT条件的新关系。

请记住#not始终与#where一起使用。