Я пытаюсь настроить форму на моей индексной странице, которая будет передавать параметр myform
на ту же страницу индекса с помощью запроса GET. Я думал, что это будет относительно просто. но я получаю сообщение об ошибке.Нет ссылок на маршрут [POST] "/" при отправке формы
Я создал контроллер, RecipesController
с методом называется index
:
class RecipesController < ApplicationController
def index
@search = params[:myform]
return @search
end
end
В этом методе я пытаюсь получить обратно то, что пользователь вводит в текстовое поле при нажатии кнопки и запрос GET увольняется.
Вот мое мнение:
<h1>Recipe Finder</h1>
<%= form_tag(controller:"recipes",method:"get") do %>
<%= label_tag(:myform, "Search") %>
<%= text_field_tag(:myform) %>
<%= submit_tag("search") %>
<% end %>
Вот мои маршруты:
Rails.application.routes.draw do
root 'recipes#index'
Это проявляется в порядке, когда я посещаю localhost:3000
, но когда я нажимаю на кнопку Я ожидаю, что контроллер index
чтобы просто вернуть текст, который я ввел в текстовое поле. К сожалению, я только получаю:
No route matches [POST] "/"
Я знаю, установку корня recipes#index
вызывает сбой в моих @search
переменных не установлен, когда страница открыта первоначально.
Мне интересно, должен ли я иметь отдельный маршрут и метод для запроса GET, и должен ли я просто открыть главную страницу с вызовом localhost:3000
без запуска какого-либо кода в контроллере? Это возможно?
Попробуйте добавить 'ресурсы: recipes' для' маршрутов. rb' – Pavan