わからないこと
Railsのxxx_pathというヘルパーメソッドを使ったときに、edit_task_path(task)のように引数を渡すケースと、edit_task_pathのように引数を渡さないケースがあり、その理由がわかりません。
簡単なTodoアプリを作るコードを写経していて、なぜだろうと思ったのですが、調べても具体的な理由がわかりませんでした。
現在書いているコード
app/views/tasks/index.html
これは理解できています。editのページにはそれぞれtask/1/editのようなURLに遷移するため、idが必要だから、という認識です。
= link_to '編集', edit_task_path(task), class: 'btn btn-primary mr-3'
app/views/tasks/show.html
= link_to '編集', edit_task_path, class: 'btn btn-primary mr-3'
tasks_controllerの記述は、indexとshowについては以下のとおりです。
def index @tasks = Task.all end def show @task = Task.find(params[:id]) end
edit_task_pathに引数が渡されないと動かないのでは?と思ったのですが、showページでは渡さなくても動くようです。その理由は何なのでしょうか?
ちなみに、show.htmlの方でedit_task_path(@task)のようにしても動作したので、わかりやすやから考えると@taskを引数に渡した方がいいのでは?と思ったのですが実際はどうなのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。