2012-02-20 27 views
1

您好我有我想去控制器的某個動作,我實現了一個的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

回答

2

我認爲這是在表單提交時對路由和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