railsで""ActionView::Template::Error (undefined local variable or method `f' for"とエラー表示が出る

開発環境

  • Ruby バージョン2.5.1
  • Rails バージョン5.2.6
  • Gem バージョン3.2.26

エラーの内容

.nav.justify-content-end
= link_to '一覧', tasks_path, class: 'nav-link'

= form_with model: @task, local: true do |f|
.form-group
= f.label :name
= f.text_field :name, class: 'form-control', id: 'task_name'
.form-group
= f.label :description
= f.text_area :description, rows: 5, class: 'form-control', id: 'task_description'
= f.submit nil, class: 'btn btn-primary'

スクリーンショット 2021-08-24 23.26.22.png

  • 内容はメソッドfが定義されていないという意味

解決策

  • slimは()やendがないので、インデントで適用範囲を識別する
  • インデントをずらすことで解決
.nav.justify-content-end
  = link_to '一覧', tasks_path, class: 'nav-link'

= form_with model: @task, local: true do |f|
  .form-group
    = f.label :name
    = f.text_field :name, class: 'form-control', id: 'task_name'
  .form-group
    = f.label :description
    = f.text_area :description, rows: 5, class: 'form-control', id: 'task_description'

  = f.submit nil, class: 'btn btn-primary'