[英]Can Ruby on Rails have multiple routes to one action while being able to differentiate in action?
我想做的是這樣的
get 'example/:id' => 'example#same_action'
並且
get 'slightly_different/:id' => 'example#same_action'
但隨后可以區分same_action()
內部使用的規則。
通過重構為模型和局部可以更好地實現這一點嗎?
您可以這樣做:
get ':something/:id', constraints: { something: /example|slightly_different/ }
並根據something
參數進行區分
乍一看,您應該根據參數進行區分,例如:
get 'example/:id' => 'example#same_action'
get 'slightly_different/:different_id' => 'example#same_action'
如果您不想使用參數,則可以考慮以下技術:
get 'example/:my_url' => 'example#same_action', constraints: { my_url: /normal|slightly_different/ }
但您需要在開始時附加一條通用路線
經過多考慮之后,這可能是一個選擇,但似乎有點討厭:
request.env['PATH_INFO']
將返回"/slightly_different"
希望有更好的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.