SampleformsController无法找到“destroy”操作

时间:2014-09-20 08:27:38

标签: ruby-on-rails

当我想删除数据库中的数据时,我收到了这个错误:

Unknown action
The action 'destroy' could not be found for SampleformsController

我的控制器销毁操作代码如下所示:

def destroy
  @sampleform = Sampleform.find_by_id(params[:id])

  if @sampleform.destroy
    redirect_to sampleforms_path
  end
end

我又得到了同样的错误

我又得到了同样的错误

4 个答案:

答案 0 :(得分:2)

SampleformsController中,您需要添加destroy方法:

class SampleformsController < ApplicationController
  def destroy
    # destroy your record here
  end
end

您可以在in the Ruby on Rails guides找到有关此主题的更多信息。

答案 1 :(得分:0)

<强>动作

这里的底线是您需要在destroy中执行SampeFormsController操作:

#app/controllers/sample_forms_controller.rb
class SampleFormsController < ApplicationController
   def destroy
     @sample_form = SampleForm.find params[:id]
     @sample_form.destroy
   end
end

我认为您遇到的具体问题是您正在调用以下内容:

Sample form.

这将工作 - 它在语法上是不正确的。只要您拨打model(只是Ruby class),就需要使用CamelCase。由于模型名称是常量,这意味着您需要正确调用它 - 如下所示:

SampleForm.destroy params[:id]

-

<强>姓名

必须注意的是,Ruby / Rails允许您在不带括号的函数名中包含参数。

变量&amp;其他参考文献(CONSTANTS,Models)应该从不有空格 - 这是你遇到的主要问题,除了没有destroy动作存在

答案 2 :(得分:0)

在您定义的destroy方法中@sample form删除空格或放置_。您的模型名称也不合适。您的destroy方法应如下所示:

def destroy
     @sample_form = SampleForm.find(params[:id])
     @sample_form.destroy

    respond_to do |format|
      format.html { redirect_to sample_forms_url }
    end
end

我希望它可以帮助你...... :)

答案 3 :(得分:0)

class SampleformsController&lt; ApplicationController的 def destroy    @sampleform = Sampleform.find(params [:id])    @sampleform = Sampleform.destroy 端

首先在控制器上执行此步骤之前,先检查模型中已完成的所有验证过程

因为有时验证此过程中的任何错误都会显示此错误