【发布时间】:2011-09-13 02:16:35
【问题描述】:
所以我知道 bang(感叹号)和非 bang 方法之间的区别通常是该方法是修改对象本身还是返回一个单独的修改后的对象,保持原始不变。
然后在本书第 6 章中构建 User 模型时,我遇到了 User.create 方法,该方法只需一步即可创建一个新模型并将其保存到数据库中。在 Michael Hartl 的 Ruby on Rails 3 教程 中,他写道 User.create! 方法“与 create 方法一样工作......除了它引发了一个 ActiveRecord::Record-Invalid 创建失败时异常。”
我很困惑。 User.create! 方法是不是遵循 Ruby “bang-convention”,还是我完全遗漏了什么?而如果他是遵守约定的,User.create!如果是类方法怎么修改self呢?
【问题讨论】:
标签: ruby ruby-on-rails-3 railstutorial.org