【问题标题】:Rails When submitting a form ,always show me the error: Routing Error No route matches "blablabla"Rails 提交表单时,总是显示错误:路由错误没有路由匹配“blablabla”
【发布时间】:2011-05-23 06:28:26
【问题描述】:

我的应用很简单:

控制器:“主” 有 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

【问题讨论】:

    标签: ruby-on-rails forms routes


    【解决方案1】:

    正如你所说,你正在向form_receiver发帖。但是你在 routes.rb 中写了get

    所以你应该:

    post "main/form_receiver"
    

    【讨论】:

    • 谢谢,我刚开始学习 Rails,但我对“get”的真正含义知之甚少,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多