保存Rails模型的所有属性

时间:2012-03-18 01:33:48

标签: ruby-on-rails model save

我有一个有很多购物车的用户模型

class User < ActiveRecord::Base
  has_many :carts

如果我更新购物车:

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

有没有办法可以保存整个用户模型?现在,如果我打电话

User.last.save

我修改过的购物车未保存。

User.last.carts.last.save

是否保存购物车。

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

由于

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:2)

保存模型保存其中的任何关联,但这不适合您的原因是因为您正在重新获取User模型而不是修改和保存相同的实例。

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

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