2017-10-14 31 views
-1

Rails的第一个参数,我想窝在博客帖子为嵌套资源没有履行5 我工作的一个简单的博客应用Rails的5

资源:博客做 资源:帖子 结束

所以URL应该工作的/博客/:blog_id /职位/:POST_ID 例如: http://wbhauck.com/blogs/1/posts/6

,但它也显示了博客2完全相同的帖子... http://wbhauck.com/blogs/2/posts/6

我测试过了,只要blog_id是一个有效的博客,它就会工作。如果我放入http://wbhauck.com/blogs/5/posts/6它会引发错误。

的代码可以在https://github.com/wbhauck/BlogApp

要么我不明白是怎么嵌套资源工作,或者它不能正常工作。但我认为这对于在另一个博客中发布的帖子无效。

我已阅读了http://guides.rubyonrails.org/routing.html#nested-resources的Ruby指南,但没有给出实现示例。

任何帮助表示赞赏。 感谢 法案

回答

2

在你的PostsController,你应该找到博客帖子

def set_post @post = @blog.posts.find(params[:id]) end

会抛出异常,如果文章没有在目前的博客中后期。 routes.rb中的代码只负责将url路由到控制器,并且不做任何神奇的事情。

+0

谢谢。就是这样。我正在设置帖子,但直接与 '@post = Post.find(params [:id])' 更改为 '@post = @ blog.posts.find(params [:id])' 修复它。 谢谢! – WBHauck