Rails以限制顺序获取并且"不"

Val*_*ris 2 ruby ruby-on-rails ruby-on-rails-4

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

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

@vip_cars = Car.order(created_at: :desc, is_vip: :desc).limit(100).sample(4)
Run Code Online (Sandbox Code Playgroud)

我尝试这样的事情:

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

但它不起作用.我做错了什么?如何通过订单,限制,采样而不是在rails 4中获取数据?

Aru*_*hit 5

你应该写为

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

#not

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

记住要#not始终与...一起工作#where.