2014-11-09 48 views
1

我想知道是否可以設置路由,以便帶參數的show route轉到另一個方法,以及何時它沒有參數返回show方法。如果請求包含查詢字符串,請單獨執行操作的路徑

get fruits/:id fruits#show 

get fruits/id?market=XXX  fruits#market 

我想這樣做,因爲我想我重裝通過AJAX該網頁,我做了popstatus以添加URL。它會是巨大的,以與該工作這樣的路線

+0

,我不認爲這就是一個好主意。如果參數存在,您應該有不同的路線或重定向到不同的路線。這只是一個想法不知道爲什麼你需要這個 – 2014-11-09 07:23:59

+0

不知道你的應用程序如何設置,但考慮使用嵌套資源?如果這些聯繫在一起,那麼有市場/:id/fruits /:id會很好 – Peege151 2014-11-09 08:16:56

回答

2

使用路線約束。

get 'fruits/:id', to: 'fruits#market', \ 
        constraints: ->(request) { request.query_parameters.present? } 

get 'fruits/:id', to: 'fruits#show' 

您還可以檢查是否有特定參數存在,例如market

get 'fruits/:id', to: 'fruits#market', \ 
      constraints: ->(request) { request.query_parameters[:market].present? } 
相關問題