2010-12-03 92 views
3

我試圖在Rails 3應用程序中以兩種方式關聯兩個模型。人們有許多寵物,每個人都可以擁有一隻寵物。軌道中的兩個模型之間的多個關聯

我使用正確的關聯和外鍵嗎?

其實我得到兩個不同號碼時,我person.favorite_pet_id和person.favorite_pet.id

class Person < ActiveRecord::Base 
    has_many :pets # pets table has a person_id 
    has_one :favorite_pet, :class_name => 'Pet' # persons table has favorite_pet_id 
end 


class Pet < ActiveRecord::Base 
    belongs_to :person # using person_id in pets table 
end 

回答

4

因爲它看起來像你的個人表的favorite_pet_id(你應該),你需要使用「belongs_to」關聯而不是「has_one」,如下所示:

class Person < ActiveRecord::Base 
    has_many :pets # pets table has a person_id 
    belongs_to :favorite_pet, :class_name => 'Pet' # persons table has favorite_pet_id 
end 


class Pet < ActiveRecord::Base 
    belongs_to :person # using person_id in pets table 
end 

這應該解決您的問題。我希望這有幫助!

+0

謝謝,我真的很感謝你回答我的一個愚蠢的問題。這工作。我忽略了「屬於」,因爲它似乎沒有描述這種關係,但我現在看到它在Rails環境中的表現。 – 2010-12-05 04:38:57

相關問題