[英]What does create! mean in rails?
這在Rails中有什么作用?
create! do |user|
#initialise user
end
我認為它創建了一個用戶對象並將其保存到數據庫中。 它與僅說user.new(...)
和user.save()
什么不同?
簡而言之:
create!
當create
返回對象時,會引發異常(如果未傳遞驗證,則返回未保存的對象)。 save!
在save
返回true
/ false
時引發錯誤。 save
不帶屬性, create
做。 new
不保存。 new
類似於在ActiveRecord
上下文中build
。 create
保存到數據庫並根據模型驗證返回true
或false
。 create!
保存到數據庫但如果模型驗證(或任何其他錯誤)中存在錯誤,則會引發異常。
當創建記錄失敗時, create!
拋出一個異常, new
然后save
(或只是create
沒有感嘆號)靜默退出。
create
take屬性,所以在這里使用一個塊有點不尋常。 你提到的代碼是在傳遞給create!
的塊中進行初始化create!
它原則上與new
相同,然后是初始化然后save!
保存,保存!,創建,停止!,更新,更新等等有許多變化,在驗證和回叫方面也有變化
有關詳細信息,請查看API :(在第一個鏈接中討論)
http://api.rubyonrails.org/classes/ActiveRecord/Base.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.