可以使用Rails ActiveRecord #save方法更新现有记录吗?
可以使用#save
方法更新记录吗?
我知道我可以使用save 创建一条新记录,如下所示:
person = Person.new person.save # rails will insert the new record into the database.
但是,如果我首先找到现有记录,修改模型,然后保存它,这与执行更新的结果相同吗?
person = Person.find(:first, :condition => "id = 1") person.name = "my_new_name" person.save # is this save performing a update or insert?
是。 Rails中的ActiveRecord对象在ID参数中保留其标识。 如果设置了ID,Rails将知道使用该ID更新数据库中的记录。
实际上, save
是创建,更新或以任何方式将对象保存到数据库的主要方式。 像update_attributes
这样的其他方法只是在其核心使用save
糖。
这是一个更新。
保存(perform_validation = true)
# File vendor/rails/activerecord/lib/active_record/base.rb, line 2533 2533: def save 2534: create_or_update 2535: end
- Rails 3 ActiveRecord方法链接,引擎盖下
- 如何在Ruby中生成正则表达式字符串匹配的百分比?
- 在尝试保存大(ish)整数值时,获取指示编号的错误“超出ActiveRecord :: Type :: Integer且限制为4”的范围
- 如何在rails中保存ActiveRecord模型后获取id值
- Ruby on Rails:如何生成应用程序范围的序列?
- 适用于所有型号的ActiveRecord全局回调
- 如何将嵌套集中的所有记录呈现为真正的html树
- Rails has_many:through,null belongs_to,multiple belongs_to和belongs_to的删除?
- 如何在服务器控制台上显示sql结果