Рельсы 3: отправка формы — установка текстового поля как: id

#ruby-on-rails-3

#ruby-on-rails-3

Вопрос:

У меня есть простая страница с одним текстовым полем и кнопкой отправки. Я хочу, чтобы пользователь мог вводить строку, и кнопка отправки направляла пользователя на определенную страницу, где текстовое поле находится в URL-адресе как:id .

Например, если пользователь вводит «тест», нажатие кнопки отправки должно отправить его в «/ controller / action / test».

Возможно ли это? Я пытался:

 <%= form_tag :controller => "myController", :action => "myAction", :id => :textFieldName do %> ...
  

но это не работает. (Я не подозревал, что это произойдет.)

Спасибо

Ответ №1:

Вам придется использовать Javascript. В простейшей форме

 $('form').submit(function() {
  $(this).attr('action') = '/url/prefix/'   $(this).find('input#the_field').val();
  return true;
});
  

И затем обработчик должен вернуться, и форма должна быть отправлена на новый URL.

Обратите внимание, что вы также должны проверить / нормализовать содержимое поля.

Ответ №2:

Вы могли бы попробовать…

Не устанавливайте идентификатор тега формы. Вместо этого возьмите значение текстового поля из params хэша в качестве указания, куда перенаправлять.

т. Е. в представлении…

 <% text_field_tag :id => "test_value" ... %>
  

и в контроллере…

 redirect_to "/action/"   params[:test_value]