我正在寫一個簡單的待辦事項應用程序,其中有項目和項目有很多任務。我希望能夠刪除項目中的任務。但是當我嘗試link_to一個刪除方法,我得到未定義的方法'task_path'。Rails刪除鏈接嵌套的路線
視圖代碼
<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,並且沒有路由匹配[DELETE]「/ projects/9/tasks」爲什麼會有額外的刪除鏈接?
<% @project.tasks.each do |task| %>
<%= task.name %> <%= link_to "delete", [@project, task], :method => :delete %>
<% end %>
看看到[Rails的指南:嵌套資源(http://guides.rubyonrails.org/routing.html#nested-resources)。 – Pigueiras 2013-04-26 12:28:38
它可能需要項目ID,你可以發佈你運行'rake routes'後得到的嗎? – 2013-04-26 12:30:02