创造了什么!铁轨意味着什么?

Asw*_*nan 9 ruby ruby-on-rails

这在Rails中有什么作用?

create! do |user| 
  #initialise user 
end
Run Code Online (Sandbox Code Playgroud)

我认为它创建了一个用户对象并将其保存到数据库中.它与仅仅说user.new(...)user.save()?有什么不同?

Adi*_*ghi 22

简而言之:

  • create!create返回对象时引发异常(如果未传递验证,则返回未保存的对象).
  • save!save返回true/时会引发错误false.
  • save没有属性,create确实如此.

new不保存.new类似buildActiveRecord背景. create保存到数据库并返回truefalse取决于模型验证. create!保存到数据库但如果模型验证(或任何其他错误)中存在错误,则会引发异常.