2013-09-23 65 views
1

我有一個var引用另一個模型。軌道上的has_may關係是必要的還是belongs_to足夠了?

User -> Profile 

當我生成我用了引用 功能,因此它已經產生了相應的遷移

.... 
t.references :user 
.... 

我的問題的剖面模型是我必須添加的用戶模型有關係嗎?

has_one :Profile 
+0

你的關係必須是小寫,':profile',沒有':Profile'。 – meagar

回答

1

是的,你需要兩種模式的代碼和你提到的遷移。

class User < AR 
    has_one :profile 
end 

class Profile < AR 
    belongs_to :user 
end 
+0

否則它不會更新外部記錄? – Petran

+0

否則協會將無法正常工作,不會說外國記錄:) –

1

HAS_ONE和belongs_to的只是方法,它增加了一些更多的方法模型。這意味着,您可以在一個模型上定義belongs_to,在另一個模型上不定義has_one。唯一的問題是你可以調用profile.user,但沒有user.profile。

這是絕對給你你想要的方式來定義,哪些是你不需要的東西。如果你永遠不想讓任何人打電話給profile.user,但想要user.profile只需撥打has_one :profile即可。一般來說,這些方法除了使用相同的外鍵列之外不分享任何內容。

然而值得一提的,這是平時宜申報反向關聯 - 它是不需要的東西,雖然工作。

相關問題