Rails4에서 render partial 부분 템플릿에 변수 전달 (locals option)을 사용할 때의주의 사항
을 하려고 하고, 이런 식으로 쓰고 있었다.
= render 'shared/item_header', locals: { item: @item }
발생하는 오류
undefined local variable or method `item' for
BetterErrors gem을 넣으면 이런 식으로 보입니다.
잘못된 로컬 값을 전달하는 방법
local_assigns 에 값이 건너기 때문에 보기 좋을 것 같아 보이지만 ··
올바르게 지정할 수 있는 경우
잘 보면 local_assigns 가 잘못되어 있는 분은 쓸데없이 1단 깊다. .
원인 · 해결 방법
view 로 render 를 기술할 때, 일부러
partial:
라고 쓰지 않아도 괜찮기 때문에, 거기를 생략했을 때의 옵션의 건네주는 방법에 문제가 있었다.참고:
레이아웃 및 렌더링 | Rails 가이드
올바른 쓰기
= render partial: 'shared/item_header', locals: { item: @item }
또는
= render 'shared/item_header', item: @item
1 번째의
partial:
옵션명을 생략했을 경우는 locals:
옵션명도 사용해서는 안 된다.※
locals
에 건네주는 변수가 1개만의 경우, 중괄호를 생략하는 경우가 많다(편집 리퀘스트에서의 지적을 반영)RailsGuide의 주의점 기재 부분
레이아웃 및 렌더링 | Rails 가이드
:layout과 같은 추가 옵션을 전달하는 경우 :partial 옵션을 명시적으로 지정해야 합니다.
partial, locals 이외의 옵션을 지정하고 싶은 경우는, 생략할 수 없기 때문에 주의.
빠진 상황과 빙고의 대답
ruby on rails - Rendering partial with locals in Haml? - Stack Overflow
과연 StackOverflow
전세계까지 펼치면 같은 상태에 빠져 와타와타하고 있는 초보자와 거기에 대답해 주는 친절한 상급자의 고리가 큰.
Reference
이 문제에 관하여(Rails4에서 render partial 부분 템플릿에 변수 전달 (locals option)을 사용할 때의주의 사항), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mm36/items/2d89aa3b77e740e671c2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)