概要
登録画面に遷移したいのに、エラーになって全然表示できない
状況に陥り、何時間も悪戦苦闘した結果、解決しましたので備忘録として残します。
事象
routes.rb
Rails.application.routes.draw do
devise_for :users
root "groups#index"
resources :users, only: [:edit, :update]
resources :groups, only: [:index, :new, :create, :edit, :update] do
resources :tasks, only: [:index, :new, :create, :edit, :update, :destroy]
end
end
controller.html.haml
def new
@task = Task.new
end
main_view.html.haml
#省略
.new_display
= form_for @task do |f|
#省略
エラーを見た感想
おかしなとこない
何言ってんねん
newアクションだからデータないやんかーーー
と一人で悶々としてました。。。
原因
原因は【form_forが自動的に生成してくれるパスは複数形のみ】ということ!!
エラー文にも記載ありました!
**undefind method 'tasks_path' for ~**
私は、その箇所を読んでも何言ってんの??そんなパスないよ
と思ってましたが
解決策
viewを下記のように変更しました!
main_view.html.haml
#省略
.new_display
= form_for @task, url: group_tasks_path do |f|
#省略
画面
似たようなことでお悩みの方の足掛かりになれば幸いです
参考