2012-03-18 3 views
3

의 모든 속성 나는 많은 카트저장 레일 모델

class User < ActiveRecord::Base 
    has_many :carts 

나는 카트를 업데이트하는 경우이있는 사용자 모델이 있습니다

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

내가 전체 사용자 모델을 저장할 수있는 방법이 있나요를? 자, 전화하면

User.last.save 

내가 수정 한 카트는 저장되지 않습니다.

User.last.carts.last.save 

장바구니를 저장하지 마십시오.

모델의 모든 업데이트 된 속성을 저장하는 방법이 있습니까?

감사

답변

2

이의 협회의 저장됩니다 모델 저장, 그러나 이것은 당신을 위해 작동하지 않는 이유는 : 또는

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

,이 같은 update_attribute 사용할 수 있습니다 동일한 인스턴스를 수정하고 저장하는 대신 User 모델을 다시 페치하기 때문입니다.

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

사용자를 저장하면 연결된 카트도 저장해야합니다.

2

당신이 그것을 수정, 카트의 사본을 가져 오는 다음 카트의 다른 복사본을 가져 와서 것을을 저장하기 때문입니다.

변수에 장바구니를 저장 한 다음 저장을 적용해야합니다. 예를 들어 :

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