完了したタスクと実行するタスクのモデルがあります。ビューにはリンクがあり、リンクをクリックするとタスクをtodoからdoneに変更する必要があります。間違っているかを示すパスなぜリダイレクトが間違っていますか?
Started GET "/tasks/32" for 127.0.0.1 at 2017-12-26 11:59:06 +0200
Processing by TasksController#show as HTML
Parameters: {"id"=>"32"}
Task Load (0.1ms) SELECT "tasks".* FROM "tasks" WHERE "tasks"."id" = ? LIMIT ? [["id", 32], ["LIMIT", 1]]
Rendering tasks/show.html.erb within layouts/application
Rendered tasks/show.html.erb within layouts/application (0.7ms)
Completed 200 OK in 57ms (Views: 55.0ms | ActiveRecord: 0.1ms)
にリダイレクトリンクをクリックしたときにそれは私のルート
get 'tasks/:id', to: 'tasks#change_to_done', as: 'change_to_done'
私の見解
<% unless task.done %>
<td><%= check_box_tag "cb_tasks[]", task.id %></td>
<td><%= link_to task.title, task %></td>
<td><%= link_to 'Edit', edit_task_path(task.id) %></td>
<td><%= link_to 'Done', change_to_done_path(task.id) %></td>
<td><%= link_to 'Destroy', task, method: :delete, data: {confirm: 'Are you sure?'} %></td>
<% end %>
と私のコントローラ
def change_to_done
@task = Task.find(params[:id])
@task.done = true
@task.save
end
ですか?フィールドの状態をfalseからtrueに変更するだけで済みます。