Rails删除链接嵌套路由

我正在写一个简单的待办事项应用程序,项目和项目有很多任务。 我希望能够删除项目中的任务。 但是当我尝试link_to一个删除方法时,我得到了未定义的方法’task_path’。

查看代码

  • :delete %>

任务控制器

  def destroy @project = Project.find(params[:project_id]) @task = @project.tasks.find(params[:id]) @task.destroy redirect_to @project, :notice => "Task Deleted" end 

的routes.rb

  resources :projects do resources :tasks end 

更新:所以我删除了工作。 但是现在我正在迭代每个任务,有一个额外的删除链接,它路由到http://todoapp.dev/projects/9/tasks并给出无路由匹配[DELETE]“/ projects / 9 / tasks”为什么是那里有额外的删除链接?

     :delete %>  

在此处输入图像描述

在此处输入图像描述

请试试这个:

 <%= link_to "delete", [@project, task], :method => :delete %> 

让我知道

运行rake routes您将看到delete被映射到project_task。

你可以用

 
    <% @project.tasks.each do |task| %>
  • <%= task.name %>
  • <%= link_to "delete", project_task_path(@project, task), :method => :delete %> <% end %>