Я пытаюсь создать форму на главной странице моего веб-приложения.Прямо сейчас у меня есть контроллер с именем home_controller.rb
и представление с именем index.html.erb
.Эти двое прямо сейчас обрабатывают «индекс» моего сайта.Я также пытаюсь добавить форму на эту страницу.Содержимое index.html.erb
:
<%= form_tag(query_path, :method => "get") do %>
<%= submit_tag("Go!") %>
<% end %>
Однако, rails выдает мне эту ошибку при загрузке страницы:
неопределенная локальная переменная или метод `query_path '
Вот что, я думаю, я хочу, чтобы произошло: я хочу другое действие в home_controller.rb
, которое называется query
(сейчас единственное действие в этом контроллере - index
).Это query
действие - это действие, которое вызывается из моей формы, когда вы нажимаете "Go!"Как мне это сделать?Что должно быть там вместо query_path
?
Редактировать:
Мне кажется, что должен быть более простой ответ на этот вопрос, а не модификация routes.rb
файл.Как я думаю об этом бизнесе маршрутизации неправильно?В моей голове, любое действие на моей странице должно по умолчанию использовать контроллер для существующей страницы.Поэтому, если я нахожусь на моей index.html.erb
странице, которая принадлежит моему home_controller.rb
, мой :action => 'query'
должен по умолчанию искать действие в моем home_controller.rb
. Почему этого не происходит? Это именно то, что я хочу, чтобы произошло.
Может быть, я думаю об этом совершенно неправильно, именно поэтому мы вместе разрабатываем решение.Вот что я хочу: я хочу, чтобы пользователь нажимал кнопку, которая заставляет приложение запрашивать внешний API, получать JSON и отображать содержимое JSON.В моей голове это означало, что кнопка переходит к другому действию в том же контроллере, который запрашивает внешний API и передает JSON обратно для отображения на той же самой странице (все это с Ajax).Я неправильно подхожу к этой проблеме?