【发布时间】:2013-04-26 12:25:03
【问题描述】:
我正在编写一个简单的待办事项应用程序,它有项目并且项目有很多任务。我希望能够删除项目中的任务。但是当我尝试链接到删除方法时,我得到未定义的方法'task_path'。
查看代码
<ul>
<% @project.tasks.each do |task| %>
<li><%= task.name %></li> <%= link_to "delete", task, :method => :delete %></br>
<% end %>
</ul>
任务控制器
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 并给出 No route matches [DELETE] "/projects/9/tasks" 为什么那里有额外的删除链接?
<% @project.tasks.each do |task| %>
<%= task.name %> <%= link_to "delete", [@project, task], :method => :delete %>
<% end %>
【问题讨论】:
-
它可能需要项目ID,您可以发布运行
rake routes后得到的结果吗?
标签: ruby-on-rails routes