【问题标题】:Difference between first! and first method in Rails区别第一!和 Rails 中的第一种方法
【发布时间】:2013-09-09 04:08:32
【问题描述】:

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

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

*User 代表一个表格。

【问题讨论】:

标签: ruby-on-rails ruby syntax


【解决方案1】:

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

first!first 相同,只是它在未找到记录时引发 ActiveRecord::RecordNotFound。

更多细节在这里:http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-first-21

【讨论】:

  • 感谢您的澄清,很高兴我能帮上忙。
  • 值得注意的是,对于以! 结尾的方法(其中有一个具有相同名称但不以! 结尾的方法),它的常见Ruby 约定会造成破坏性/爆炸性/引发.
  • 哦,我也不知道,我想这是双赢的
【解决方案2】:

!是一个爆炸字符。在像 create! 这样的其他方法中,它强制创建发生。它会跳过验证和您设置的其他内容。

【讨论】:

  • 这不是create! 所做的。 create!create 一样创建一个对象,但调用save! 而不是save,因此如果记录无效,则会引发异常。 (save 返回 false,如果验证失败或任何关联的回调返回 false,则不会引发异常。)
  • 哦!感谢您的澄清。我的错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
相关资源
最近更新 更多