Как изменить формат моего параметра? - PullRequest
0 голосов
/ 25 января 2010

Вот мой код 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

Что мне делать?

Ответы [ 2 ]

1 голос
/ 25 января 2010

Это совсем не специфично для Rails, поскольку формат передачи параметров HTML-формами является определенным стандартом. (?input_name=input_value&next_input_name=next_input_value). Так как вы хотите иметь отдельный выбор для дня / месяца / года, я боюсь, что нет другого пути, кроме как использовать JS перед отправкой формы.

0 голосов
/ 25 января 2010

Нильс Ридеманн прав, это не обязательно проблема рельсов, а проблема HTML-форм.

Вы можете использовать скрытые поля формы, чтобы делать то, что вы хотите. Создайте два скрытых текстовых поля (одно для «от» и одно для «до»). Напишите функцию Javascript, которая принимает значения полей выбора месяца / дня / года, строит из их значений строку типа «25/01/2010» и сохраняет эту строку как содержимое скрытого поля. Подключите функцию Javascript для запуска каждый раз, когда изменяется одно из полей выбора даты. Теперь, если операция отправки формы отправляет только два скрытых поля, вы можете получить более приятный на вид URL, чем вы хотите.

Кроме того, вы можете использовать URL-адрес, например:

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

, воспользовавшись возможностью rails перезаписать URL . Смотрите, в частности, раздел «Красивые URL».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...