执行删除操作时,为什么会出现路由错误?

时间:2013-11-25 14:22:58

标签: ruby-on-rails ruby-on-rails-3

当我执行delete时,出现路由错误:

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

别担心,current_user.items.find(params[:id])确实找到/items/10pp-logo的正确记录。

这是我的Delete对象上item操作视图中的链接:

<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

我的控制器中有7个RESTful动作,还有2个nonRESTFul动作 - 我有两条不同的路径。

思想?

1 个答案:

答案 0 :(得分:4)

我认为HTTP方法应该是:delete not:destroy。它默认为:post,这就是你得到的。