2012-01-04 40 views
1

因此,讓我有一個Transactions模型。使用類名指定關聯時,如何訪問它? Rails 3

Transactions.rb具有:

belongs_to :buyer, :class_name => "User" 
belongs_to :seller, :class_name => "User" 

用戶登錄,與CURRENT_USER訪問。

我該怎麼做像current_user.transactions? (這不會工作,因爲交易沒有user_id列)或者像current_user.transactions.buyer?

謝謝!

(也是用戶模型的has_many:交易)

回答

3

Rails中所有協會是單向的。

因此,對於每個belongs_to,您需要在另一端添加一個has_manyhas_one

我建議你想要這樣的東西;

class User 
    has_many :transactions_as_buyer, 
    :class_name => "Transaction", 
    :foreign_key => :buyer_id 

    has_many :transactions_as_seller, 
    :class_name => "Transaction", 
    :foreign_key => :seller_id 
end 

現在你可以說,

current_user.transactions_as_seller.map(&:buyer) 

得到一個買家陣列。

當然,這取決於你的應用程序,你可能比「transactions_as_buyer /賣家」

一個更好的名字