ruby-on-rails - 可以使用 Rails ActiveRecord #save 方法更新现有记录吗?

标签 ruby-on-rails activerecord

这个问题在这里已经有了答案:





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/

相关文章:

ruby-on-rails - Spork/Autotest 不自动获取更改

java - 对象关系映射的缺点

ruby-on-rails - link_to与动态:class样式在 rails ?

ruby-on-rails - 如何在 Ruby on Rails 中有效地处理多个数据库表

ruby-on-rails - 如何使用 Ruby 和 ActiveRecord 构建独占 IN 查询?

ruby-on-rails - 在 Rails 中没有其他查询的情况下限制急切加载 `where`

ruby-on-rails - PostgreSQL Ruby Heroku 问题

ruby-on-rails - 使用 Ruby on Rails 安排发送电子邮件任务的最佳方法是什么?

ruby-on-rails - 指定要与 git merge 的文件夹

ruby-on-rails - Rails 3 - 自定义 link_to 助手(具有默认类和添加类的能力)