2011-03-19 122 views
13

记录在Ruby on Rails的,是@variable.delete@variable.destroy删除从数据库

+0

这不是一个真正的Ruby问题,它是您使用的任何ORM的问题,因为您使用的是Rails,所以可能是ActiveRecord。如何改写您的问题和标题以反映ORM而不是Ruby。因为这是一个令人困惑的问题。 – 2011-03-19 08:15:31

+0

是的,你是对的,我改变了这一点 – 2011-03-19 08:18:34

回答

32

@variable.destroy将调用所有回调函数(before_destroy等)以及确保关联性得到尊重。 @variable.delete只是调用原始数据库查询来删除该对象。使用destroy即使价格较高,通常也会更安全。

2

假设你正在使用的ActiveRecord,那@variableActiveRecord::Base子类的实例,调用@variable.destroy