所以我正在研究这个rails项目。我试图从视图中获取输入并将其传递给控制器,因此可以将其保存到变量中供以后使用。
我的/views/welcome/index.html.erb
视图层包含以下内容:
<div class="locator-input">
<%= text_field_tag :user_input %>
<%= submit_tag "Get started" %>
</div>
和/controller/welcome_controller.rb
class WelcomeController < ApplicationController
def index
end
def locator
@user_input = params['user_input']
end
end
和routes.rb
此处
Rails.application.routes.draw do
root 'welcome#index'
end
因此当我继续点击提交时,我收到此错误:
我知道此错误与routes.rb
有关,但我无法弄清楚如何修复它。
我的最终目标是获取用户输入,将其传递给控制器并将其保存到变量中,以便稍后可以将其用于我的模型。
我将非常感谢我们的专家提供的一些指导。
感谢。
答案 0 :(得分:2)
使用root
生成的路由只需GET
个请求。但是您的表单会发送POST
个请求。
要解决此问题,只需将以下内容添加到config/routes.rb
:
root 'welcome#index'
match '/', to: 'welcome#index', via: [:post]
答案 1 :(得分:1)
以表格
包裹字段<div class="locator-input">
<%= form_tag locator_welcome_path %>
<%= text_field_tag :user_input %>
<%= submit_tag "Get started" %>
<% end %>
</div>
您还需要创建路线
Rails.application.routes.draw do
resource :welcome, controller: :welcome do
post :locator
end
root 'welcome#index'
end
这将生成
locator_welcome POST /welcome/locator(.:format) welcome#locator