2012-03-18 67 views
3

的所有属性我有了很多车保存Rails的模式

class User < ActiveRecord::Base 
    has_many :carts 

如果我更新车用户模型:

User.last.carts.last.time_purchased = Time.now 

有没有一种方法可以让我节省了整个用户模式?现在,如果我打电话

User.last.save 

我修改的购物车没有保存。

User.last.carts.last.save 

是否保存购物车。

有没有办法保存模型的所有更新属性?

感谢

回答

2

保存模型保存任何的关联,但这不是为你工作的原因是因为您正在重新获取User模型,而不是修改并保存相同的实例。

user = User.last 
user.carts.last.time_purchased = Time.now 
user.save 

保存用户还应保存关联的购物车。

2

这是因为你取车的拷贝,修改它,然后取车的另一个​​副本和保存

您应该将购物车保存在一个变量中,然后应用保存。例如:

cart = User.last.carts.last 
cart.time_purchased = Time.now 
cart.save 

或者,你可以使用update_attribute,像这样:

User.last.carts.last.update_attribute(:time_purchased, Time.now)