2010-10-27 71 views
4
class Comment < ActiveRecord::Base 
    belongs_to :post 
    belongs_to :user 
end 

因此,通過上述關聯,我可以從給定的評論對象中獲取用戶和帖子的詳細信息嗎?
模型是否可以屬於多個模型?

@comment.post.post_title and 
@comment.user.user_name. 

同時請注意,我用評論的帖子的嵌套的資源。

resources :posts do 
    resources :comments 
end 

回答

7

是的,你可以,你不需要指定外鍵或類名來這樣做。說belongs_to :user意味着rails會在註釋表中尋找一個user_id整型字段,並且期望一個名爲User的ActiveRecord類存在。

添加儘可能多的,他們不會互相干擾。

+0

這是Rails 3的新功能嗎?我當然必須在Rails 2.3.2中指定一個外鍵來完成這個工作,並且我最近升級到了Rails 3,所以我沒有機會嘗試這個。 – Samo 2010-10-27 19:29:21

+1

不,這不是新的,它可以回溯到1.2(我使用的最早版本)。一個模型可以有任意數量的關聯(has_many,belongs_to等),它們不會相互影響。唯一需要指定class_name和foreign_key的時間是當它們與rails期望的不同時。 – 2010-10-27 19:38:32

+0

好吧,這是我的新聞,因爲我知道我試過這個,直到我添加了類似於我引用的示例的代碼時,它才起作用。也許這是一個子類/性病問題,我不記得了。 – Samo 2010-10-27 20:02:31

相關問題