在我的应用程序中,我使用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中获取数据?
答案 0 :(得分:5)
你应该写为
Car.order(created_at: :desc, is_vip: :desc)
.where.not(id: params[:id])
.limit(100).sample(4)
阅读#not
根据参数中的条件返回表达WHERE + NOT条件的新关系。
请记住#not
始终与#where
一起使用。