如何在Rails控制台中删除范围(哈希)

时间:2017-03-06 07:16:25

标签: ruby-on-rails

Rails控制台

  

q = Article.last(3)
  q.delete

wrong number of arguments (0 for 1) 
  

q.destroy

NoMethodError: undefined method `destroy' for #<Array:0x0000000901b6d0>

2 个答案:

答案 0 :(得分:2)

尝试

Article.destroy_all(id: q.map(&:id))

OR

Article.destroy q.map{ |a| a.id }

答案 1 :(得分:2)

您可以使用destroy_all

q = Article.order(id: :desc).limit(3)
q.destroy_all

或使用您的方法

q = Article.last(3) 
q.map(&:destroy)
# or
Article.where(id: q.map(&:id)).destroy_all

您也可以将destroy_all链接到where

Article.where(some_condition).destroy_all