我在Rails 3應用程序中有一個簡單的博客功能。我正在爲每篇文章添加評論。 BlogComment
模型有一個屬性blog_post_id
,能夠爲每個帖子找到相應的評論。我已經在模型中設置了我的關聯關係,我還在BlogPost
的路由文件中嵌套了BlogComments
。在Rails 3中嵌套模型/路徑3
但是,我不知道如何通過控制器給每個BlogPost
訪問其各自的註釋,以便它們可以在視圖中稍後顯示。
我在Rails 3應用程序中有一個簡單的博客功能。我正在爲每篇文章添加評論。 BlogComment
模型有一個屬性blog_post_id
,能夠爲每個帖子找到相應的評論。我已經在模型中設置了我的關聯關係,我還在BlogPost
的路由文件中嵌套了BlogComments
。在Rails 3中嵌套模型/路徑3
但是,我不知道如何通過控制器給每個BlogPost
訪問其各自的註釋,以便它們可以在視圖中稍後顯示。
假設你已經安裝的博文與has_many :blog_comments
,並BlogComment與belongs_to :blog_post
,您可以訪問這篇文章的評論中柱控制器:
@blog_post = BlogPost.find(params[:id])
@blog_post_comments = @blog_post.blog_comments
Assumming在模型
博客帖子有很多blog_Comments,
在你的控制器:
@b = BlogPost.find(1)
在你看來@b.blog_Comments.each ....
這將是最好有這個作爲comments
關聯,這樣你不重新鍵入單詞blog
所有的時間:
has_many :comments, :class_name => "BlogComment"
這仍然讓你有你的模型叫BlogPost
和BlogComment
,但是當你去得到一個BlogPost
對象的意見:
@blog_post.comments
沒有更多的重複。
創建新評論時,是否必須設置我的評論模型的'blog_post_id'屬性? – mbreedlove 2011-03-01 00:56:41
如果您通過後期對象分配或創建對象,將會爲您處理這些關聯,包括設置外鍵。例如,@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