当我想删除数据库中的数据时,我收到了这个错误:
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
我又得到了同样的错误
我又得到了同样的错误
答案 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 端
首先在控制器上执行此步骤之前,先检查模型中已完成的所有验证过程
因为有时验证此过程中的任何错误都会显示此错误