2010-01-25 79 views
0

這是我的Ruby代碼:如何更改我的參數格式?

 <%form_tag orders_path, :method => 'get' do%> 
     From           
     <%= date_select ("from", "", :start_year => 2010, :order => [:day, :month, :year])%> 
     To            
     <%= date_select ("to", "", :start_year => 2010, :order => [:day, :month, :year])%> 
     <%= submit_tag "Search", :name => nil%> 
     <%end%> 

我選擇一些日期後,我有這樣的結果:

http://localhost:3000/orders?from[%283i%29]=25&from[%282i%29]=1&from[%281i%29]=2010&to[%283i%29]=25&to[%282i%29]=1&to[%281i%29]=2010

我想要的參數成爲一個易於閱讀的格式一樣:

http://localhost:3000/orders?from=25/01/2010&to=25/01/2010 

我該怎麼辦?

回答

1

這完全不是Rails特有的,因爲參數被HTML表單傳遞的格式是定義的標準。 (?input_name=input_value&next_input_name=next_input_value)。既然你想單獨選擇日/月/年,恐怕除了在提交表單之前使用JS之外沒有別的辦法。

0

Nils Riedemann是正確的,這不一定是一個軌道問題,因爲它是一個HTML表單問題。

您可能能夠使用隱藏的表單域來做你想做的事。創建兩個隱藏文本字段(一個用於「from」和一個用於「to」)。編寫一個採用月/日/年選擇字段值的Javascript函數,從它們的值中構建一個類似「25/01/2010」的字符串,並將該字符串存儲爲隱藏字段的內容。每次更改某個日期選擇字段時,將Javascript函數連接起來運行。現在,如果表單的「提交」操作僅提交了兩個隱藏字段,則可以獲得您想要的更加美觀的網址。

或者,你可以使用一個URL,如:通過利用軌道的能力,以re-write URLs

http://localhost:3000/orders/25-01-2010/25-04-2010 

。具體請參閱「漂亮網址」部分。