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