删除不起作用,而是插入一个新的空记录

时间:2014-04-15 12:09:36

标签: ruby-on-rails

我已经尝试过从我的数据库中删除记录,但是我失败了。它不是删除所选值,而是在我的数据库中插入一个新的空记录。请帮帮我。

我的控制器是:

class CatvaluesController < ApplicationController
    ...
    def destroy
        @catvalue = Catvalue.find(params[:id])
        @catvalue.destroy
        redirect_to catvalues_path
    end
    ....
end

我的表格是:

<%= form_for(@catvalue) do |f| %>
<%= f.collection_select :id, @catvalues, :id, :v_name, {}, class: 'drop-down'%>
<%= f.submit 'Destroy', :confirm => 'Are you sure you want to destroy your account?' %>
<% end %>

2 个答案:

答案 0 :(得分:1)

form_for默认采用post方法

<%= form_for @catvalue, :method => :delete do |f| %>

好的,我现在正在向表单助手添加url,试试吧!

<%= form_for @catvalue, :url => "/catvalues/#{@catvalue.id}",:method => :delete do |f| %>

答案 1 :(得分:0)

您正在提交POST请求,它将在您的控制器上调用创建操作,因此您的空模型。

您必须使用delete http方法来调用控制器上的destroy操作:

<%= form_for(@catvalue, :method => :delete) do |f| %>