2015-10-15 102 views
1

我有一個問題,你怎麼能做出多個可選參數。 F.E.在我的變體中,我需要類似的東西來「/(:first_name ||:last_name || middle_name || all_names)」。我怎樣才能達到目標?我能在路線上實現這樣的目標嗎?Rails路由多個可選參數

順便說一句,這將會是很好,如果我能回答做了很多多則params的f.e:

/(:a || :b || :c)/(:d || :e)/(:n || :m)

感謝。

+0

您能不能做到這一點 - 如何服務器可以告訴給PARAMS是否代表名字或姓氏?你爲什麼需要這樣做? – BroiSatse

+0

我需要不同的網址來進行不同的查詢。 –

+0

仍然不清楚,你試圖達到什麼目的,通常每個網站都希望不同的查詢不同的網址。問題在於你如何;在你的控制器里加入這些參數。 – BroiSatse

回答

2

你必須做所有的工作條件在控制器 - 在路線在那裏捕獲請求的URL &引導他們到特定功能(控制器/動作)。

因此,您使用

/(:a || :b || :c)/(:d || :e)/(:n || :m)

的問題...基本上是錯誤的(你不能在路由條件 「或」)。


什麼你可以有是bound parameters

enter image description here

這些都是可選PARAMS該路線可以走,但不必。

在你的情況,你需要用它們來表示的名稱通過:

#config/routes.rb 
resources :users, path: "" do 
    get :first_name(/:middle_name(/:last_name)), action: :show, on: :collection 
end 

這是你會得到沒有路由系統做一些定製的最好的...像有slugs什麼的。

+0

可選參數需要'/'?可以沒有它?例如'/ my-:param(-can-be-:可選)( - and-this-:too)' –

+0

我認爲只能用'/',儘管你需要測試才能發現 –