我想做的事情是这样的
get 'example/:id' => 'example#same_action'
以及
get 'slightly_different/:id' => 'example#same_action'
然后能够区分same_action()
内部使用的规则。
通过重构为模型和部分来更好地实现这一目标吗?
答案 0 :(得分:2)
你可以这样做:
get ':something/:id', constraints: { something: /example|slightly_different/ }
并根据something
param
答案 1 :(得分:1)
乍一看,您应该根据参数进行区分,例如:
get 'example/:id' => 'example#same_action'
get 'slightly_different/:different_id' => 'example#same_action'
如果你不想使用param,你可以考虑这个tecnique:
get 'example/:my_url' => 'example#same_action', constraints: { my_url: /normal|slightly_different/ }
但你需要在开头追加一条共同路线
答案 2 :(得分:1)
经过多思考后,这可能是一个选择,但似乎有点讨厌:
request.env['PATH_INFO']
会返回"/slightly_different"
希望有更好的方法。