ruby-on-rails
  • ruby-on-rails-3
  • 2013-11-25 35 views 1 likes 
    1

    當我做了delete,我得到一個路由錯誤:爲什麼在執行刪除操作時會出現路由錯誤?

    Routing Error 
    No route matches [POST] "/items/10pp-logo" 
    

    別擔心,current_user.items.find(params[:id])並找到/items/10pp-logo正確的記錄。

    這是我item對象爲我Delete動作視圖鏈接:

    <td><%= link_to "<i class='fa fa-trash-o'></i>".html_safe, item, method: :destroy, data: { confirm: "Are you sure you want to delete #{item.name}?" } %></td> 
    

    這是在控制器中的作用:

    def destroy 
        @item = current_user.items.find(params[:id]) 
        @item.destroy 
    
        respond_to do |format| 
         format.html { redirect_to items_url } 
         format.json { head :no_content } 
        end 
        end 
    

    所有JS被呈現在頁腳 - 即低於視圖中的刪除操作呈現的位置(不確定是否會產生差異)。

    這是在我的模型 - Item.rb

    belongs_to :owner, :class_name => "User", 
        :foreign_key => "user_id" 
    

    這是項目路線:

    resources :items 
    

    我有我的控制器和2分nonRESTFul者7個REST風格的動作 - 對,我有2條單獨路線。

    想法?

    回答

    4

    我相信HTTP方法應該是:delete not:destroy。它默認爲:post,這就是你所得到的。

    +0

    完美。這對我有效。謝謝! – marcamillion

    相關問題