2012-07-13 63 views
0

我在Rails中遇到了一個奇怪的問題。當我嘗試並用以下形式我上傳控制器上提交一個搜索查詢:Rails 3搜索動作重定向顯示?

<%= form_tag ({:controller => "uploads", :action => 'find_uploads'}), :method => "get" do %> 
     <%=h text_field_tag :search, params[:search], :id => 'search_field' %> 
     <br /> 
     <%= submit_tag "Search", :style=>"display:inline;" %> 
<% end %> 

我重定向到以下網址和錯誤頁面:

/uploads/find_uploads?utf8=✓&search=bot&commit=Search 

的ActiveRecord :: UploadsController中的RecordNotFound#show

找不到上傳id = 0

我find_uploads路線:get 'uploads/find_uploads' => "uploads#find_uploads"

當我沒我耙路線,這是我得到了什麼:

uploads_find_uploads GET /uploads/find_uploads(.:format) {:controller=>"uploads", :action=>"find_uploads"} 

一切似乎是爲了......不知道爲什麼它不按預期工作。爲了進行調試,我在find_uploads和show actions中都放棄了斷點,並且他們都沒有到達,所以這個錯誤信息必須對我說謊,因爲UploadsController顯示操作永遠不會被調用!

如果這個表格在我的索引頁面上顯示,如果它包含任何內容的話。

回答

1

我認爲這是一個ID爲find_uploads

聲明你的路由這樣的:

resources :uploads do 
    collection do 
     get :find_uploads 
    end 
end 

PS:目前,當你做rake routes/uploads/find_uploads/uploads/:id後,對不對?

+0

嘿,感謝您的快速反應羅賓,以及解決問題的良方。是的,它在'/ uploads /:id'之後 – Noz 2012-07-13 19:01:31