Rails 5 我正在开发一个简单的博客应用程序,我想将帖子嵌入博客
资源:博客 资源:帖子 端
所以URL应该作为/ blogs /:blog_id / posts /: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指南,但没有给出实现示例。
感谢任何帮助。 谢谢 纸币
答案 0 :(得分:2)
在你的PostsController中,你应该在博客的帖子中找到帖子
def set_post
@post = @blog.posts.find(params[:id])
end
如果帖子不在当前博客中,它将抛出异常。 routes.rb中的代码只负责将url路由到控制器,而不是做任何神奇的事情。