0

プロジェクトがあり、プロジェクトには多くのタスクがある単純な todo アプリを作成しています。プロジェクト内のタスクを削除できるようにしたいです。しかし、delete メソッドに link_to しようとすると、未定義のメソッド '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

ルート.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 %>

ここに画像の説明を入力

ここに画像の説明を入力

4

2 に答える 2

0

実行rake routesすると、削除が project_task にマップされていることがわかります。

あなたは使用することができます

<ul>
  <% @project.tasks.each do |task| %>
    <li><%= task.name %></li> <%= link_to "delete", project_task_path(@project, task), :method  => :delete %></br>
  <% end %>
</ul>
于 2013-04-26T12:32:11.057 に答える