我有一个基本的应用程序,允许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
我想这一点,并没有返回任何错误,它处理的赎回,但并没有增加点...
想法?
说这样做是为了而是简单地增加一个爆炸是更优雅。 –