Rails 3搜索操作重定向显示?

时间:2012-07-13 18:44:32

标签: ruby-on-rails-3 get url-routing

我在Rails中遇到了一个奇怪的问题。当我尝试在上传控制器上使用以下表单提交搜索查询时:

<%= 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 :: 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 show动作!

如果该表单对任何内容都有效,则会在我的索引页面上呈现。

1 个答案:

答案 0 :(得分:1)

我认为它会以find_uploads为ID。

声明你的路线:

resources :uploads do
    collection do
        get :find_uploads
    end
end

ps:目前,当您执行rake routes时,/uploads/find_uploads正好在/uploads/:id之后?