这是我的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=25/01/2010&to=25/01/2010
我该怎么办?
答案 0 :(得分:1)
这根本不是Rails特有的,因为HTML表单传递参数的格式是一个定义的标准。 (?input_name=input_value&next_input_name=next_input_value)
。由于您希望单独选择日/月/年,我担心在提交表单之前除了使用JS之外别无他法。
答案 1 :(得分:0)
Nils Riedemann是正确的,这不一定是一个rails问题,因为它是一个HTML表单问题。
您可以使用隐藏的表单字段来执行您想要的操作。创建两个隐藏文本字段(一个用于“from”,另一个用于“to”)。编写一个Javascript函数,它接受月/日/年选择字段的值,从其值中构建类似“25/01/2010”的字符串,并将此字符串存储为隐藏字段的内容。连接Javascript函数以在每次更改其中一个日期选择字段时运行。现在,如果您的表单的“提交”操作仅提交两个隐藏字段,您可以获得一个看起来更漂亮的URL。
或者,您也可以使用以下网址:
http://localhost:3000/orders/25-01-2010/25-04-2010
利用rails re-write URLs的能力。具体请参阅“漂亮网址”部分。