繁体   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