2012-11-14 27 views
1

我有一個問題,我覺得很難在網上搜索答案之間...回報率has_two關係:捐贈兩個用戶

我在Ruby on Rails的兩款車型:用戶和捐贈。

我想要一個關係有兩個用戶:user1給user2 10 $。

這是我想出了:

class Donation < ActiveRecord::Base 
    attr_accessible :description, :value, :from_user_id, :to_user_id 

    def from_user 
    User.find(from_user_id) 
    end 

    def to_user 
    User.find(to_user_id) 
    end 

end 

但我想用關係......你知不知道這樣做的最佳方式?

感謝很多:)

回答

1
has_one :from_user, :class_name => 'User', :foreign_key => 'from_user_id' 
has_one :to_user, :class_name => 'User', :foreign_key => 'to_user_id' 

的關係是沒有什麼特別的......嗯,還好,他們現在的樣子,但是這基本上是構建適當的SQL。我認爲。沒有嘗試過。

+0

好的謝謝,這看起來很簡單......我不知道你可以有「has_one」沒有「belongs_to」! –

+0

你實際上希望這兩個都是belongs_to。 belongs_to在具有外鍵的桌子上,在這種情況下應該是捐贈,因爲用戶可能有很多捐贈。 – mrgordon

+0

是的,我意識到會嘗試訪問我的用戶。謝謝 :) –