【问题标题】:Rails 3 Search Action Redirects To Show?Rails 3 搜索操作重定向显示?
【发布时间】:2012-07-13 18:44:32
【问题描述】:

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

<%= 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 in UploadsController#show

找不到 id=0 的上传

我的 find_uploads 路线: get 'uploads/find_uploads' =&gt; "uploads#find_uploads"

当我这样做时,我得到了这样的路由:

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

一切似乎都井井有条......不知道为什么它没有按预期工作。出于调试目的,我在 find_uploads 和 show 操作中都放置了断点,但都没有到达,所以这个错误消息一定是对我说谎,因为 UploadsController 显示操作永远不会被调用!

如果该表单有任何作用,它会在我的索引页上呈现。

【问题讨论】:

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


    【解决方案1】:

    我认为它需要 find_uploads 作为 id。

    这样声明你的路线:

    resources :uploads do
        collection do
            get :find_uploads
        end
    end
    

    ps:目前,当你做rake routes时,/uploads/find_uploads/uploads/:id之后,对吧?

    【讨论】:

    • 您好,感谢 Robin 的快速响应,以及解决问题的好方法。是的,它是在/uploads/:id 之后
    猜你喜欢
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 2014-10-17
    相关资源
    最近更新 更多