我有一个带有嵌套任务的列表对象。我创建了一个显示单个任务的页面,以及一个允许用户编辑单个任务的页面。我现在想添加从任务编辑页面上的列表中删除任务的功能。使用以下代码
<%= link_to 'Delete this task',@task, confirm: 'Are you sure?', method: :delete %>
产量
undefined task_path method
这段代码在 show.html.erb 页面上,我在其中调用 @task 来显示存储在任务中的所有数据,所以我相信这个问题可能是某种路由错误,但我似乎无法弄清楚出去。
相关的控制器方法是
def destroy
@task = Task.find(params[:id])
@task.destroy
respond_to do |format|
format.html { redirect_to list_tasks_path(@task) }
format.json { head :ok }
end
end
我认为使用 delete 方法,我提供的 @task 只会通过 params 发送到 destroy 方法,但这个错误似乎表明这不是它的工作原理。那么如何正确销毁 Rails 中的嵌套资源呢?
编辑: 这是带有嵌套资源的路由文件:
MyApp::Application.routes.draw do
resources :lists do
resources :tasks
end
get "home/index"
root :to => 'home#index'
end
谢谢您的帮助!