Строка запроса Rails в URL? - PullRequest
       0

Строка запроса Rails в URL?

1 голос
/ 05 ноября 2010

У меня есть одна форма текстового поля на моей домашней странице (/).

Прямо сейчас, как настраиваются мои Rails-маршруты, когда я отправляю эту форму, она переходит в / search, но не публикует строку запроса в моем URL.

Другими словами, когда я вхожу в "hello" в этой форме и нажимаю submit, я хочу оказаться в "/ search? Query = hello". Я знаю, что "hello" в params [: query], но как мне заставить Rails опубликовать эту строку запроса в URL целевой страницы после отправки запроса?

Я прочитал Руководство по маршрутам Rails , но в нем говорится о входящих строках запроса в URL, а не о том, что Rails публикует URL с видимой строкой запроса.

Спасибо.

Моя форма тега пока что:

<% form_tag(:controller => "search", :action => "search", :method => :get) do %>
              <%= text_field_tag 'query' %>
              <%= submit_tag "Search"%>

            <% end %>

Если я это сделаю, я получу / search? Method = get, но я бы хотел увидеть /search?query=foo.

Ответы [ 2 ]

4 голосов
/ 05 ноября 2010

Вам просто нужно определить форму с помощью метода get вместо post

<% form_tag search_url, :method => :get do %>

    <%=text_field_tag :search %>
    <%= submit_tag %>

<% end %>
0 голосов
/ 05 ноября 2010

Убедитесь, что метод вашей формы (как показано на странице HTML, которую клиент увидит перед отправкой формы) - это GET, а не POST.С POST params[:query] скрыто от пользователя (это часто используется для форм входа в систему, форм, которые будут представлять кредитные карты или другую конфиденциальную информацию).Но если вы хотите, чтобы запрос отображался в URL, вам нужно использовать метод GET.Rails сам не несет ответственности за такое поведение, все это на стороне веб-браузера.

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