AnA*_*ice 6 ruby-on-rails ruby-on-rails-3
鉴于以下内容:
@users = User.where(:state => 1)
which 15 for: @users.length
Run Code Online (Sandbox Code Playgroud)
在rails控制台中,有没有办法删除所有这些记录,也许是通过做类似的事情@users.delete
?
fl0*_*00r 14
@users = User.where(:state => 1)
Run Code Online (Sandbox Code Playgroud)
最简单的方法是使用destroy_all
或delete_all
:
@users.destroy_all
# OR
@users.delete_all
Run Code Online (Sandbox Code Playgroud)
就这样
您的模型类有一个delete
方法(和destroy
方法),可以使用单个ID或ID数组来删除(或销毁)。传递数组将仅发出单个 DELETE
语句,在这种情况下,这是最佳选择。
User.delete @users.map { |u| u.id }
# or
User.destroy @users.map { |u| u.id }
Run Code Online (Sandbox Code Playgroud)
请注意,当您调用destroy
ActiveRecord模型时,它将在删除记录之前创建记录的实例(因此将运行回调等)。在这种情况下,由于您已经具有完全实例化的对象,因此,如果您确实要调用destroy
(而不是delete
),则在J -_- L的答案中使用该方法并自己对其进行迭代可能更有效。
归档时间: |
|
查看次数: |
10651 次 |
最近记录: |