Rails формы: как не переписать существующие параметры get после отправки формы? - PullRequest
2 голосов
/ 18 мая 2011

У меня есть страница списка, и я фильтрую элементы по ссылкам с параметром get (я могу выбрать много ссылок, чтобы запрос соответствовал "?param1=value1&param2=value2"). Но также я должен отфильтровать его по текстовому полю, поэтому я сделал форму:

<form>
  <%= text_field_tag :zip, params[:zip] %>
  <%= submit_tag 'OK', :name => nil %>
</form>

Но когда я отправляю его, параметр текстового поля заменяет существующие параметры запроса. Итак, как сделать так, чтобы значение текстового поля добавлялось к запросу, а не заменяло его?

Ответы [ 2 ]

1 голос
/ 04 марта 2016

Поскольку я только имел дело с этой проблемой в Rails 4, я решил поделиться своим решением.Моя страница загружается с параметром sport_id, и когда пользователь указывает порядок сортировки, я хотел, чтобы он отправил запрос GET для зрителей page.url / event? Sport_id = 1 & sortby =, но он не сохранит параметр sport_id, пока я не добавлютег скрытого поля в форме, например, такой:

<%= hidden_field_tag :sport_id, params[:sport_id] %>

Это решение отправляет пустой параметр sport_id, если этого параметра не было в исходном запросе, но это легко предотвратить, инкапсулируя скрытое поле в <% if params [: sport_id] .present?%> условие.

1 голос
/ 18 мая 2011

Рельсы 3?

<%= form_tag your_path(params.except(:controller, :action)), :method => :get do %>
  <%= text_field_tag :zip, params[:zip] %>
  <%= submit_tag 'OK', :name => nil %>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...