ruby-on-rails
  • ruby-on-rails-3
  • 2013-11-25 27 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

    相关问题