2012-01-21 48 views
0

用戶 的has_many:代碼 的has_many:贖回導軌3回調設定的增量上相關聯的對象

代碼 belongs_to的:用戶 的has_many:贖回

贖回 HAS_ONE:代碼 belongs_to的:用戶

救贖型號:

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

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

    after_create :increment_points 
    def increment_points 
    self.code.user.increment!(:points) 
    end 

當我創建一個新的贖回它返回以下錯誤:

PGError: ERROR: column codes.redemption_id does not exist 
LINE 1: SELECT "codes".* FROM "codes" WHERE "codes"."redemption_id... 
              ^
: SELECT "codes".* FROM "codes" WHERE "codes"."redemption_id" = 17 LIMIT 1 

有什麼事跟我交往?我已將其映射出來並相信我可以追溯關聯兌換 - >代碼 - >用戶

對此問題的一個警告是,兌換用戶不是我想增加點數的用戶。該代碼是由用戶創建的,也就是我正在嘗試更新的用戶...

想法?

回答

0

has_many/one和belongs_to需要一起去。當你聲明Redemption has_one:代碼時,Rails希望你在代碼表上放置一個redemption_id,並在代碼上聲明對應的belongs_to。

+0

非常感謝。 –