【发布时间】:2012-08-08 14:06:45
【问题描述】:
在 Rails 中使用嵌套资源路由时我注意到的一件事是,从技术上讲,用户可以访问存在子资源(因此可以正确显示)的路由,但是父资源的 id 表示实际上与子资源无关的对象。
例如,在路由users/:user_id/post/:id 中,用户可以输入一个路由,其中:user_id 表示没有发布与:id 对应的帖子的用户。
解决此问题的最佳方法是什么,以便在用户访问无效 URL 时,服务器会将用户重定向到正确的 URL?
我已经在我的控制器中放置了一些代码来处理这个问题,但是必须检查每个控制器操作中的路径然后将用户重定向到适当的 url,这有点尴尬,特别是因为每个操作的 URL 帮助程序都不同.
(edit_user_post_path(@user, @post), new_user_post_path(@user, @post))
一定有更好的方法,对吧?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 routes nested-routes