Ruby on rails 行动';摧毁';找不到SampleformsController的

Ruby on rails 行动';摧毁';找不到SampleformsController的,ruby-on-rails,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 e

当我想删除数据库中的数据时,出现以下错误:

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
我又犯了同样的错误


我再次在您的
SampleformsController
中遇到相同的错误,您需要添加一个
销毁方法:

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

您可以找到有关此主题的更多信息。

操作

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

#app/controllers/sample_forms_controller.rb
class SampleFormsController < ApplicationController
   def destroy
     @sample_form = SampleForm.find params[:id]
     @sample_form.destroy
   end
end
这将不起作用-它在语法上是不正确的。无论何时调用
模型
(这只是一个),都需要使用。由于模型名是一个常量,这意味着您需要正确调用它-如下所示:

SampleForm.destroy参数[:id]

--

名称

必须注意的是,Ruby/Rails允许在函数名中包含参数,而不使用括号


变量和其他引用(常量、模型)不应该有空格-这是您的主要问题,除了在您定义的
方法中没有
销毁
操作之外。您的型号名称也不合适。。您的
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

我希望它能帮助你……)

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


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

在使用您发布的代码时,您是否收到了您发布的错误?您的代码有语法错误。尝试使用
@sample\u form=Sampleform.find\u by\u id(params[:id])
,并
重定向\u到sampleforms\u路径
在这里搜索相同的问题-在我的情况下,意外地将销毁定义放在控制器中的
私有
块下-因此即使已定义,rails没有将其注册为有效的操作终结点。仅在有助于其他人的情况下在此发布。。
def destroy
     @sample_form = SampleForm.find(params[:id])
     @sample_form.destroy

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