2011-02-28 90 views
0

我在Rails 3應用程序中有一個簡單的博客功能。我正在爲每篇文章添加評論。 BlogComment模型有一個屬性blog_post_id,能夠爲每個帖子找到相應的評論。我已經在模型中設置了我的關聯關係,我還在BlogPost的路由文件中嵌套了BlogComments在Rails 3中嵌套模型/路徑3

但是,我不知道如何通過控制器給每個BlogPost訪問其各自的註釋,以便它們可以在視圖中稍後顯示。

回答

1

假設你已經安裝的博文與has_many :blog_comments,並BlogComment與belongs_to :blog_post,您可以訪問這篇文章的評論中柱控制器:

@blog_post = BlogPost.find(params[:id]) 
@blog_post_comments = @blog_post.blog_comments 
+0

創建新評論時,是否必須設置我的評論模型的'blog_post_id'屬性? – mbreedlove 2011-03-01 00:56:41

+1

如果您通過後期對象分配或創建對象,將會爲您處理這些關聯,包括設置外鍵。例如,@blog_post_comments = @ blog_post.comments.build爲您提供了一個帶有正確ID設置的新評論對象,並且如果您將評論作爲嵌套資源傳遞給POST對象,那麼新評論將使用正確的協會也是如此。在這裏看看更多的信息:http://guides.rubyonrails.org/getting_started.html#building-a-multi-model-form – clemensp 2011-03-01 01:26:28

0

Assumming在模型

博客帖子有很多blog_Comments,

在你的控制器:

@b = BlogPost.find(1)

在你看來

@b.blog_Comments.each .... 
1

這將是最好有這個作爲comments關聯,這樣你不重新鍵入單詞blog所有的時間:

has_many :comments, :class_name => "BlogComment" 

這仍然讓你有你的模型叫BlogPostBlogComment,但是當你去得到一個BlogPost對象的意見:

@blog_post.comments 

沒有更多的重複。