Rails删除链接嵌套路由

nul*_*tek 0 routes ruby-on-rails

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

查看代码

<ul>
  <% @project.tasks.each do |task| %>
    <li><%= task.name %></li> <%= link_to "delete", task, :method  => :delete %></br>
  <% end %>
</ul>
Run Code Online (Sandbox Code Playgroud)

任务控制器

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

的routes.rb

 resources :projects do
    resources :tasks
  end
Run Code Online (Sandbox Code Playgroud)

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

 <% @project.tasks.each do |task| %>
    <%= task.name %> <%= link_to "delete", [@project, task], :method  => :delete %>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

Ali*_*per 7

请试试这个:

<%= link_to "delete", [@project, task], :method  => :delete %>
Run Code Online (Sandbox Code Playgroud)

让我知道