所以我知道 bang(感叹号)和非 bang 方法之间的区别通常是该方法是修改对象本身还是返回一个单独的修改后的对象,保持原始对象不变。
然后,在本书第 6 章中构建用户模型时,我遇到了一个User.create
方法,该方法可以创建一个新模型并将其保存到数据库中。在 Michael Hartl 的Ruby on Rails 3 教程中,他写道,该User.create!
方法“与该create
方法一样工作......除了它在创建失败时引发ActiveRecord::Record-Invalid异常”。
我很困惑。该User.create!
方法是不是遵循 Ruby “bang-convention”,还是我完全遗漏了什么?如果他遵循惯例,User.create!
如果它是类方法,如何修改 self ?