的Rails的form_tag重定向路由错误

问题描述:

您好我有我想去控制器的某个动作,我实现了一个的form_tag:的Rails的form_tag重定向路由错误

<%= form_tag(:controller => "admins", :action => "check_in") do %> 
     <%= hidden_field_tag :direction, params[:direction] %> 
     <%= hidden_field_tag :sort, params[:sort] %> 
     <p> 
     <%= text_field_tag :search, params[:search] %> 
     <%= submit_tag "Search", :name => nil %> 
     </p> 
<% end %> 

但它不工作,它重定向到管理员/ CHECK_IN一个正确的路线泰国是我想重定向,但轨道放“没有路线匹配”/管理员/ check_in“”错误。我不明白,因为这条路线是正确的,如果我把浏览器“http:// localhost:3000/admins/check_in”它的工作。我如何纠正它重定向管理员控制器check_in行动?

+0

它是GET或POST路线行动? – Kuba 2012-02-20 09:59:18

+0

我们需要看你的check_in动作 – daniel 2012-02-20 10:01:51

我认为这是在表单提交时对路由和POST使用GET的情况。 如果您运行rake routes您应该看到路由是GET,对吧?表单提交时会发出POST请求。无论是作出这样的的form_tag:

form_tag({:controller => "admins", :action => "check_in"}, :method => "get") 

或改变路线在routes.rb中文件POST像这样:

post "admins/check_in" => "admins#check_in" 

你可以看到,当你开始导轨和终端rails s,什么是接收读取请求日志,因为它涉及的要求来样

希望帮助,否则:

+0

谢谢我忘了把:method =>“get”放在form_tag中,这个效果很好。 – TomasMax 2012-02-20 11:09:33