[英]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.