【发布时间】:2014-08-22 22:21:25
【问题描述】:
对于几个项目,我需要一些东西来简化我的路线,以删除最重要路线之一的控制器名称。在这种情况下,版本,所以而不是
domain.com/editions/london/venues/the-venue
我们使用->
domain.com/london/venues/the-venue
我一直在使用这个公式进行路由:
# MUST BE LAST
resources :editions, path: '' do
get 'set_session', on: :member
resources :events
resources :quiz_masters
resources :venues
end
它运行良好,但我觉得它有一些不愉快的地方。我想知道是否有更好的选择,它也有限制,所以我不必担心总是把它放在我的路线底部。
我也不确定path: '' 是一个好方法吗?即使它有效。
【问题讨论】:
-
例如,我可以用
:constraints => proc { |req| Edition.all.map(&:slug).include?(req.params[:edition_id]) }以某种方式限制它? -
这也是我们一直在努力解决的问题 - 如果您有一个希望在您的路线中不使用资源定义的单一实例,我们拥有的最佳解决方案就是您在问题中提出的解决方案本身
-
是的,感觉有点像黑客。一方面,我不喜欢使用 path: "" 打开所有路由,另一方面,我不喜欢在我的路由中设置一个必须触及数据库的约束的想法!脏!
-
为你写答案。对你帮助不大,但会解释一些事情
标签: ruby-on-rails ruby-on-rails-4 routes nested-routes custom-routes