ActiveRecord[八]:数据的更新
上一篇 /
下一篇 2007-09-14 13:18:22
/ 个人分类:rubyonrails学习笔记
1、用save()方法,将记录中的所有字段都更新,如:
order = Order.find(123)
order.name = "Fred"
order.save #不只更新name属性,会将order对象的所有属性都更新,即使这些属性没有发生变化
2、要更新一个对象,用find_by_sql取出要更新的对象时,必须包含id字段,如:
orders = Order.find_by_sql("select id,name,pay_type from orders where id=123") #必须包含id字段
first = order[0] #只更新一个对象
first.name = "Wilma"
first.save
3、用update_attribute()方法更新某几个特定字段的值,如:
order = Order.find(123)
order.update_attribute(:name,"Barney") #只更新name属性的值
order = Order.find(321)
order.update_attribute(:name=>"Barney",
:email=>"barney@bedrock.com") #更新name和email属性的值
4、用update()和update_all()方法可以将“读取数据”与“更新数据”的操作合二为一
update()的第一个参数是要更新记录的id或id组成的数组,第二个参数是要更新的属性或一个属性值hash组成的数组,如:
order = Order.update(12,:name=>"Barney",:email=>"barney@bedrock.com")
update_all()允许指定update语句中的set和where子句,如:
result = Product.update_all("price = 1.1*price","title like '%Java%'") #将带 Java 字样的货品价格提高10%
5、save()和save!(),save成功返回true,失败返回false,可以自己决定是否检查save()方法的结果,而save!失败会抛出RecordInvalid异常
导入论坛
收藏
分享给好友
推荐到圈子
管理
举报
TAG: