这个问题在这里已经有了答案:
how does activerecord know to perform an insert or update?
(3 个回答)
7年前关闭。
可以#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
在他们的核心。
关于ruby-on-rails - 可以使用 Rails ActiveRecord #save 方法更新现有记录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505079/