的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行动?
答
我认为这是在表单提交时对路由和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
它是GET或POST路线行动? – Kuba 2012-02-20 09:59:18
我们需要看你的check_in动作 – daniel 2012-02-20 10:01:51