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 %>