• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

RubyonRails,使用save和update_attributes更新持久化的ActiveRecord对象

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

上文《Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别》中我们使用rails console访问模型创建对象并将其保存到数据库中。

现在我们学习如何更新已经持久化的对象并将修改更新到数据库。与保存对象类似,更新对象也有两种方法。

其一,最常规的方法是直接更新一个持久化对象的属性,然后将其保存。感觉和使用new/save方法保存对象差不多,只不过new的过程被find 或赋值操作替代了。

找到持久化对象的引用 手动设置对象属性 save方法将对象保存

启动rails console,第一步是获取一个持久化对象。我们之前创建过了,现在从数据库中读取他,find命令后面会学到。将数据库中id为3的对象赋值给subject3,打印一下name属性,更新name属性,保存。

irb(main):006:0> subject3=Subject.find(3) [1m[36mSubject Load (27.0ms)[0m [1mSELECT `subjects`.* FROM `subjects` WHERE `subjects`.`id` = 3 LIMIT 1[0m => #<Subject id: 3, created_at: "2012-09-04 17:07:34", updated_at: "2012-09-04 17:07:34", name: "abbuggy", position: "co der"> irb(main):007:0> subject3.name => "abbuggy" irb(main):008:0> subject3.name="tom" => "tom" irb(main):009:0> subject3.save [1m[35m (14.0ms)[0m BEGIN [1m[36m (63.0ms)[0m [1mUPDATE `subjects` SET `name` = 'tom', `updated_at` = '2012-09-05 14:41:37' WHERE `subjects `.`id` = 3[0m [1m[35m (63.0ms)[0m COMMIT => true irb(main):010:0>

另一种方式和用crate方法创建及保存对象很类似,叫做update_attributes,将属性设置和保存操作整合为一步。在update_attributes方法的参数中将要修改的字段名和值传入。

上一篇中的save,create和这一篇中的update_attributes方法调用之后都会返回一个表明保存或更新是否成功的boolean值。这个其实挺有用的,比如你要保存一个前台填写的表单,需要对表单是否保存成功做出反馈。这是数据有效性检查的范畴了,后面会讲到。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ruby中super和super()的区别发布时间:2022-07-14
下一篇:
【转】RubySelenium测试发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap