2012-01-21 91 views
0

我有一個基本的應用程序,允許user1創建一個可兌換的代碼。用戶1與他的朋友和用戶共享此代碼2,3,4兌換代碼。在每次贖回時,我需要增加user1的points屬性。rails 3增加/ after_save之前的相關模型屬性

第一次用戶兌換代碼時,它創建了一個兌換。由於用戶只能兌換一次代碼,因此這再也不能工作了。另一個用戶可以兌換它,但每個用戶不能超過一次。

所以我想我會使用before或after_create回調。這裏是我的救贖類:

class Redemption < ActiveRecord::Base 
    has_one :code 
    belongs_to :user 

    validates :code_id, :presence => true 
    validates :user_id, :presence => true 

    before_create :increment_points 

    def increment_points 
    self.user.increment(:points) 
    end 

end 

我想這一點,並沒有返回任何錯誤,它處理的贖回,但並沒有增加點...

想法?

回答

0

我認爲問題在於你沒有保存用戶模型。像self.user.save!可能會訣竅。

+0

說這樣做是爲了而是簡單地增加一個爆炸是更優雅。 –