Ruby on Rails中User.first
和User.first!
之间有什么区别?
我在Ruby指南中看到了这个例子,但没有解释为什么它不同。据我所知,!
用于表示该方法正在更改变量。
* User
代表一张桌子。
答案 0 :(得分:16)
我不知道ActiveRecord中有first!
finder方法。感谢您的提问,现在我知道了: - )
first!
与first
相同,只是如果没有找到记录,会引发ActiveRecord :: RecordNotFound。
此处有更多详情:http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-first-21
答案 1 :(得分:-1)
!是一个爆炸性的角色。在诸如create!之类的其他方法中,它会强制进行创建。它会跳过验证和您设置的其他内容。