Rails提交表单时,总是向我显示错误:路由错误没有路由匹配“ blablabla”

问题描述

| 我的应用程序很简单: 控制器:\“ main \”       具有3个动作:\“ welcome \”,\“ form_receiver \”和\“ result \” 和2个视图:\“ result.html.erb \”和\“ welcome.html.erb \” 我要做的就是将表格“ welcome.html.erb”中的内容发布到动作“ form_receiver”中,并在“结果”动作中显示一些结果。 但是在发布表单后,我得到了错误:路由错误没有路由匹配\“ / main / form_receiver \” ,我很确定自己已经在路径中包含了路径。 以下是我的密码 controllers / main_controller.rb:
class MainController < ApplicationController
  def welcome
    #nothing
  end

  def form_receiver
    @p = params[:customer]
    redirect_to :controller => \"main\",:action=>\"result\"
  end

  def result

  end
end
views / main / welcome.html.erb:
<h1>Main#welcome</h1>
<%= form_tag :controller => \'main\',:action     => \'form_receiver\'  do%>
<p>name : <%= text_field \"customer\",\"nick\" %> </p>
<p>pwd : <%= password_field \"customer\",\"password\" %></p>
<p><input type=\"Submit\" value=\"sign up\"/> </p>
<% end %>
views / main / result.html.erb:
<%=@p[\'cick\']%>
<%=@p[\'password\'] %>
config / routes.rb:
TestForm::Application.routes.draw do
  get \"main/welcome\"

  get \"main/result\"

  get \"main/form_receiver\"
end
    

解决方法

如您所说,您要发布到
form_receiver
。但是您在routes.rb中写了“ 5”。 因此,您应该:
post \"main/form_receiver\"