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

Yan*_*ang 16 activerecord ruby-on-rails

#save方法可以用于更新记录吗?

我知道我可以使用save 创建一个新记录,如下所示:

person = Person.new 
person.save # rails will insert the new record into the database.
Run Code Online (Sandbox Code Playgroud)

但是,如果我首先找到现有记录,修改模型,然后保存它,这与执行更新的结果相同吗?

person = Person.find(:first, :condition => "id = 1") 
person.name = "my_new_name" 
person.save # is this save performing a update or insert?
Run Code Online (Sandbox Code Playgroud)

Mat*_*chu 21

是.Rails中的ActiveRecord对象在ID参数中保留其标识.如果设置了ID,Rails将知道使用该ID更新数据库中的记录.

save实际上,它是创建,更新或以任何方式将对象保存到数据库的主要方式.其他类似update_attributes的方法只是糖save的核心.

  • 这不是真的.. person = Person.new person.id = 23 person.save失败..没有id告诉它它是新的. (3认同)