rubyonrails:Ruby on rails开发从头来( 5十 2)- ActiveRecord基础(删除记录)

  Active Record提供了两种方式进行删除操作首先有两个类级别思路方法delete和delete_all这两个操作处在数据库层面上delete思路方法接收个或组和数据库对应iddelete_all思路方法删除所有符合指定条件记录如果没有指定条件就会删除所有记录思路方法返回值和具体数据库适配器相关例如oracle返回被影响行数如果没有记录被删除也不会抛出异常 Order.delete(123)
User.delete([2,3,4,5])
Product.delete_all(["price > ?", @expensive_price])


  另外destory思路方法删除和数据库中行相对应Model对象这样会冻结这些对象并且不能修改对象

order = Order.find_by_name("Dave")
order.destroy


  有两个类级别destory思路方法destory思路方法接收个或组iddestory_all思路方法接收删除条件这两个思路方法都从数据库中读出对应记录到Model对象并且对这个对象例子级别destory思路方法而且不返回有意义信息

Order.destroy_all(["shipped_at < ?", 30.days.ago])

  为什么我们同时需要delete和destory思路方法呢?delete思路方法绕过了些Active Record回调(callback)和验证而使用destory则不会通常我们使用destory思路方法来确保我们数据库是并且不会破坏Model中所包含业务逻辑

Tags:  rubyonrails安装 rubyforrails rubyrails rubyonrails

延伸阅读

最新评论

发表评论