【问题标题】:Deleting top N records in Rails 4在 Rails 4 中删除前 N 条记录
【发布时间】:2023-03-20 04:24:01
【问题描述】:

我不敢相信我找不到如何执行此操作,但我无法删除 Rails 4 中的前 20 条记录。

我正在尝试这个的变体:

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

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

我收到此错误:

ArgumentError: 参数数量错误(1 代表 0)

我做错了什么?

【问题讨论】:

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


    【解决方案1】:

    你需要使用destroy_all

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

    【讨论】:

    • 赞成这个答案,因为你真的应该在你的 order 子句中指定排序方向,尤其是在删除记录时。
    • @JeffPerrin:OP 正在尝试按升序而不是降序对记录进行排序。此外,ascorder by 子句的默认规则,因此显式设置它有点多余 - 仅当您想按具有不同顺序方向的多个列进行排序时。
    猜你喜欢
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    相关资源
    最近更新 更多