2016-01-11 78 views
0

我無法計算出關聯。我需要通過交易將用戶鏈接到反饋。反饋有transaction_id屬性,Transaction有seller_id。我將如何做到這一點使用協會?這是我到目前爲止,感謝您的幫助!謝謝!如何設置:通過Ruby On Rails中的ActiveRecord關聯?

class Feedback < ActiveRecord::Base 
    belongs_to :user 
end 

class User < ActiveRecord::Base 
    has_many :feedbacks 
end 

class Transaction < ActiveRecord::Base 
    belongs_to :seller, :class_name => 'User', :foreign_key => 'seller_id' 
end 
+0

事務是一個危險的名稱, 「事務」 是活動記錄的內部方法。遲早你會發生名字衝突,所以現在更好地重命名它。 – Meier

+0

同意,我實際上爲此使用了PlatformTransaction。 – nebulus

回答

2

用戶 - >交易 - >反饋

class User < ActiveRecord::Base 
    has_many :transactions 
    has_many :feedbacks, through: :transactions, foreign_key: 'seller_id' 
end 

class Transaction < ActiveRecord::Base 
    has_many :feedback 
    belongs_to :seller, class_name: 'User', foreign_key: 'seller_id' 
end 

class Feedback < ActiveRecord::Base 
    belongs_to :transaction 
end 
+0

對不起,跑了以爲聯想很快就意識到我需要保留你的外鍵聲明。編輯以反映這一點。 – Beartech

+1

您還需要讓'User'知道如何使用主鍵和外鍵定義查找'Transaction',否則'@ user.transactions'將查找不存在的'user_id'列。 – engineersmnky

+0

謝謝你不確定。這是正確的形式嗎? – Beartech