[Rails]render 메소드란?

처음에



왜 이 기사를 쓰고 싶었는지



최근 드디어 render에서 눈치채는 적이 있었기 때문에 언어화하고 기억의 정착을 위해 쓰고 싶다!

환경



・Macbook Air (Retina, 13-inch, 2019)
· 프로세서 1.6GHz 듀얼 코어 Intel Core i5
・메모리 8GB 2133 Mhz LPDDR3
· MacOS Big Sur 버전 11.5.2

기사 목차



1) 무엇을 할 수 있는가
2) 어떻게 잡는지
3) 옵션
4) 자신이 혼란스러웠던 것
5) 마지막으로

무엇을 할 수 있는가



render 메소드로 지정한 view 파일로 이동 혹은 배치할 수 있다!



render 메소드는 app / views를 기점으로 패스를 전달하면 전달 된 패스를 출력합니다!



(예:)



1) 이 Qiita 페이지 위의 녹색 부분을 각 view 파일에 한 번 한 번 코드를 쓰는 것보다 render를 사용하면 render를 사용하여 한 번에 배치할 수 있다!
2) DB에 데이터를 추가 보존하는 create 액션을 한 후의 처리에서 render를 사용하면 지정한 view로 천이가 가능하게 된다.

어떻게 사용하는지 (render로 지정한 파일에 따라 사용법이 바뀌기 때문에 주의!)



(같은 폴더의 파일을 배치하고 싶은 경우 → index 파일에 top 파일을 배치하고 싶다)


<%= render "ファイル名" %>



(1) 배치하고 싶은 파일의 작성





(2) 배치하고 싶은 장소에 render를 사용한다.





(다른 폴더의 파일을 배치하고 싶은 경우 →index 파일에 header 파일을 배치하고 싶다)


<%= render "フォルダー名/ファイル名 %>  もしくは <%= render partial: "フォルダー名/ファイル名" %>



(1) 배치하고 싶은 파일의 작성





(2) 배치하고 싶은 장소에 render를 사용한다.





(선택 사항) 다른 컨트롤러 아래에있는 view를 출력하는 옵션


<%= render template: "フォルダー名/ファイル名" %>



1) 별도의 controller에 파일을 준비한다.





(2) 배치하고 싶은 장소에 render를 사용한다.





(선택 사항) 다른 애플리케이션 아래의 뷰를 출력하는 옵션



예: furima 애플리케이션에 다른 애플리케이션(sample_app)의 index.html.erb를 배치하고 싶습니다.
<%= render  file "u/apps/別のアプリケーション名/現在のアプリケーション/app/views/コントローラー名/配置したいviewのファイル名" %>
<%= render file: "u/apps/sample_app/current/app/views/products/index" %>

(선택 사항) 액션을 출력하고 싶을 때


<%=  render action: "アクション名" %>

자신이 혼란스러웠던 것



view에서 render를 사용할 때는 view간의 이동을 할 수 있고, controller에서 render를 사용할 때는 controller간에 설정한 액션을 사용할 수 있다고 착각해 버렸다.



액션을 사용하고 싶은 경우는 옵션을 붙이지 않으면 사용할 수 없다!


마지막으로



사용하는 장소에 따라 render의 기능이 달라진다고 생각해 버려, 생각대로 움직여주지 않는다 이해할 수 없다고 생각하는 것을 피해 버렸습니다만, 아웃풋 할 수 있는 장소가 있으면 자신에게의 이해의 도움이 되기 때문에 좋다 뭐라고 생각했다!

여기까지 읽어 주셔서 감사합니다!

좋은 웹페이지 즐겨찾기