簡體   English   中英

創造了什么! 鐵軌意味着什么?

[英]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保存到數據庫並根據模型驗證返回truefalse create! 保存到數據庫但如果模型驗證(或任何其他錯誤)中存在錯誤,則會引發異常。

當創建記錄失敗時, create! 拋出一個異常, new然后save (或只是create沒有感嘆號)靜默退出。

create take屬性,所以在這里使用一個塊有點不尋常。 你提到的代碼是在傳遞給create!的塊中進行初始化create! 它原則上與new相同,然后是初始化然后save!

保存,保存!,創建,停止!,更新,更新等等有許多變化,在驗證和回叫方面也有變化

有關詳細信息,請查看API :(在第一個鏈接中討論)

http://api.rubyonrails.org/classes/ActiveRecord/Base.html

http://apidock.com/rails/ActiveRecord/Base

http://m.onkey.org/active-record-query-interface

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM