Làm cách nào để hủy tất cả trừ bản ghi n mới nhất sử dụng ActiveRecord của Rails?Đường ray phá hủy tất cả các bản ghi mới nhất n
Tôi có thể nhận được các bản ghi n mới nhất bằng cách sử dụng thứ tự và giới hạn nhưng làm cách nào để phá hủy nghịch đảo?
Trong Rails 4.2.0 bạn phải gửi thông điệp chính xác đến đối tượng AR: 'Foo.all.order ('created_at DESC'). Limit (n)' – borjagvo
Lưu ý rằng điều này sẽ làm việc trên [ActiveRecord :: Relation] (http: //apidock.com/rails/ActiveRecord/Relation/destroy_all) vì nó chấp nhận 'điều kiện'. Nó sẽ không hoạt động trên ActiveRecord :: CollectionProxy vì phương thức 'destroy_all' chỉ chạy' @ association.destroy_all' mà không có đối số. (https://github.com/rails/rails/blob/58772397e9b790e80bcd4d8e51937dc82ecb719e/activerecord/lib/active_record/associations/collection_proxy.rb#L504-L506) Cố gắng sử dụng các đối số trong 'destroy_all' cho một CollectionProxy sẽ tăng một' ArgumentError' ngoại lệ. – anothermh