Ruby on Rails에서 Slim을 사용할 때 form_with에서 "undefined local variable or method `f' for "

3681 단어 form_withRails슬림

개발 환경



Ruby: v2.5.7
Rails: v5.2.4.4
gem slim: v4.1.0

오류 내용


= form_with model:@team, local:true do |f|

= render 'layouts/error_message', model: f.object

.input
  = f.label :name
  = f.text_field :name

.input
  = f.label :introduction
  = f.text_area :introduction

  = f.submit

이번에 Ruby on Rails의 Gem의 하나인 slim를 도입했는데 조속히 에러에 걸렸습니다.
내용은 NameErrorundefined local variable or method f' for #<#<Class:0x00007fef406b53c8>:0x00007fef35880668>
지정하고 있는 f 가 정의되어 있지 않다고 하는 것입니다.
form_with에 기술 된 블록 변수에서 f와 있지만 ...
만약 slim 독특한 form_with 쓰는 방법이 있는 것은??라고 생각해, 여러가지 조사하고 있었습니다만
결과, 다음과 같이 수정하면 해결했습니다.
= form_with model: @team, local: true do |f|

/ それぞれ 1段落インデントをずらしました
  = render 'layouts/error_message', model: f.object

  .input
    = f.label :name
    = f.text_field :name

  .input
    = f.label :introduction
    = f.text_area :introduction

    = f.submit

들여쓰기 조정이었습니다... 알아보면 간단...
end 이나 () 가 필요 없기 때문에, form_with의 적용 범위를 어떻게 판별하고 있을까라고 머리에 따랐습니다만, 들여쓰기로 식별하고 있군요. 과연...
이 오류를 통해 알았습니다. 웃음

단순한 일이지만, 빠져서 게시합니다.

그렇다고 해도 익숙해지는 것은 필요합니다만, 적은 기술과 괄호가 필요하지 않는 것만으로도 꽤 기술이 간략화되어 코드가 쓰기 쉽고, 보기 쉽습니다. 게다가 렌더링도 조금 빠르다고 하기 때문에 좋은 곳 뿐이네요, slim.

좋은 웹페이지 즐겨찾기