先区别!和Rails中的第一个方法

时间:2012-10-24 22:39:33

标签: ruby-on-rails ruby syntax

Ruby on Rails中User.firstUser.first!之间有什么区别?

我在Ruby指南中看到了这个例子,但没有解释为什么它不同。据我所知,!用于表示该方法正在更改变量。

* User代表一张桌子。

2 个答案:

答案 0 :(得分:16)

我不知道ActiveRecord中有first! finder方法。感谢您的提问,现在我知道了: - )

first!first相同,只是如果没有找到记录,会引发ActiveRecord :: RecordNotFound。

此处有更多详情:http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-first-21

答案 1 :(得分:-1)

!是一个爆炸性的角色。在诸如create!之类的其他方法中,它会强制进行创建。它会跳过验证和您设置的其他内容。

相关问题