你如何刪除一個ActiveRecord對象?你如何刪除一個ActiveRecord對象?
我看着Active Record Querying它沒有任何東西可以刪除,我可以看到。
通過
id
刪除,刪除當前對象,如:
user.remove
,可以刪除根據
where
條款?
你如何刪除一個ActiveRecord對象?你如何刪除一個ActiveRecord對象?
我看着Active Record Querying它沒有任何東西可以刪除,我可以看到。
通過id
刪除,
刪除當前對象,如:user.remove
,
可以刪除根據where
條款?
這是destroy
和destroy_all
方法,如
user.destroy
User.find(15).destroy
User.destroy(15)
User.where(age: 20).destroy_all
User.destroy_all(age: 20)
或者您可以使用delete
和delete_all
,不會強制執行:before_destroy
和:after_destroy
回調或任何相關的關聯選項。
User.delete_all(condition: 'value')
將允許你刪除記錄 沒有主鍵
User.destroy
User.destroy(1)
將刪除用戶與發生id == 1
和:before_destroy
和:after_destroy
回調。例如,如果您有關聯的記錄
has_many :addresses, :dependent => :destroy
用戶被銷燬後,他的地址也會被銷燬。 如果您使用刪除操作,則不會發生回調。
User.destroy
,User.delete
User.destroy_all(<conditions>)
或User.delete_all(<conditions>)
通知:用戶是一類與用戶是一個實例對象
感謝您解決相關記錄。 – 2012-11-14 15:26:07
注意:'User.destroy_all()'運行回調函數,所以在它刪除任何東西之前,它會加載記錄。這是兩個SQL語句不是一個。除了性能影響外,這也具有併發性影響。更安全的呼叫跳過回調; 'User.delete_all()'只會發出一個'DELETE FROM ...'命令。 – 2015-11-11 01:48:38
有delete
,delete_all
,destroy
和destroy_all
。
的文檔是:older docs和Rails 3.0.0 docs
delete
不實例化對象,而destroy
一樣。通常,delete
比destroy
快。
'delete'速度更快,但會繞過您可能在模型上定義的回調 – Rudi 2015-10-17 19:39:56
如果用戶模型沒有主鍵,則user.destroy不起作用 – hammady 2013-10-24 11:06:04
它應該是'User.destroy'。 – Chinmay235 2016-05-05 07:21:02
它適合我!,謝謝! – 2016-05-13 06:19:27