0

我不能相信我无法找到如何做到这一点,但我无法删除的前20条记录中的Rails 4删除前N个记录4

我想要的变化这样的:

Comment.all(:order=> 'id asc', :limit => 20).delete 

Comment.find(:all, :order => 'id asc', :limit => 20).delete 

我得到这个错误:

ArgumentError: wrong number of arguments (1 for 0)

我在做什么错?

回答

1

您需要使用destroy_all

Comment.order('id').limit(20).destroy_all 
+0

Upvoted这个答案,因为你真的* *应您的订单条款中删除记录时指定排序方向,尤其是。 –

+0

@JeffPerrin:_OP_试图按升序对记录进行排序,而不是降序。此外,'asc'是'order by'子句的默认规则,因此显式设置它是多余的 - 只有当您想按不同顺序方向排列多个列时。 – potashin

+0

对不起,由于某种原因,我把它看作'desc' –