Rails view를 만드는 방법 (튜토리얼 3장 정리)
Rails view-controller 정보
Rails는 MVC 아키텍처이지만 JSP-Servlet(오래된…)처럼 view에 값을 묻어 반환하는 것이 아니라 컨트롤러가 view를 렌더링하여 반환한다. 거친 그림이지만 아래와 같은 이미지.
erb
Rails의 view에서는 html에 ruby 코드를 포함하는 'erb'파일이 자주 사용된다.
정직 erb보다 haml 라든지 쪽이 편리할 것 같지만, (haml은 태그 없이 쓸 수 있다)
공부를 위해서, 쓰는 방법이 html에 가까운 erb쪽을 사용해 간다.
erb에 루비 코드를 포함하려면 <% %>
를 사용하십시오.
루비 코드의 실행 결과를 태그 안에 포함하고 싶은 경우는 =
를 붙여 <%= %>
로 한다.
예를 들어, 태그 안에 :title
를 yield하고 싶을 때는 아래와 같이 쓴다
<title><%= yield(:title) %></title>
layout
웹 시스템을 작성할 때 페이지의 타이틀이나 레이아웃 등, 모든 페이지에 공통되는 요소가 여러 개 있다.
이것을 하나하나의 erb 파일에 써 가면, 공통 부분이라고 할 때도 모두 편집하지 않으면 안 된다.
예를 들어 10페이지 정도로 구성된 웹페이지의 레이아웃이 바뀌었다면
10 페이지 전부로 수작업으로 편집하는 날개가 되고, 버그의 원인이 될 수도 있다
이러한 공통 부분을 layout에 묶어서 모든 페이지의 수정을 한 번에 끝낼 수 있다.
provide, yield
layout의 공통 부분에 변수를 포함시키고 싶은 경우는, erb로 provide 헬퍼를 사용한다.
erb로 provede한 변수를 layout측에서 yield하면, 그 변수를 평가해 erb에 매입된다.
yield에 인수를 주지 않으면 view를 그대로 평가하십시오.
Rails의 view에서는 html에 ruby 코드를 포함하는 'erb'파일이 자주 사용된다.
정직 erb보다 haml 라든지 쪽이 편리할 것 같지만, (haml은 태그 없이 쓸 수 있다)
공부를 위해서, 쓰는 방법이 html에 가까운 erb쪽을 사용해 간다.
erb에 루비 코드를 포함하려면
<% %>
를 사용하십시오.루비 코드의 실행 결과를 태그 안에 포함하고 싶은 경우는
=
를 붙여 <%= %>
로 한다.예를 들어, 태그 안에
:title
를 yield하고 싶을 때는 아래와 같이 쓴다<title><%= yield(:title) %></title>
layout
웹 시스템을 작성할 때 페이지의 타이틀이나 레이아웃 등, 모든 페이지에 공통되는 요소가 여러 개 있다.
이것을 하나하나의 erb 파일에 써 가면, 공통 부분이라고 할 때도 모두 편집하지 않으면 안 된다.
예를 들어 10페이지 정도로 구성된 웹페이지의 레이아웃이 바뀌었다면
10 페이지 전부로 수작업으로 편집하는 날개가 되고, 버그의 원인이 될 수도 있다
이러한 공통 부분을 layout에 묶어서 모든 페이지의 수정을 한 번에 끝낼 수 있다.
provide, yield
layout의 공통 부분에 변수를 포함시키고 싶은 경우는, erb로 provide 헬퍼를 사용한다.
erb로 provede한 변수를 layout측에서 yield하면, 그 변수를 평가해 erb에 매입된다.
yield에 인수를 주지 않으면 view를 그대로 평가하십시오.
layout의 공통 부분에 변수를 포함시키고 싶은 경우는, erb로 provide 헬퍼를 사용한다.
erb로 provede한 변수를 layout측에서 yield하면, 그 변수를 평가해 erb에 매입된다.
yield에 인수를 주지 않으면 view를 그대로 평가하십시오.
<!DOCTYPE html>
<html>
<head>
<title><%= yield(:title) %></title>
</head>
<body>
<%= yield %>
</body>
</html>
<% provide(:title, "ブログ")%>
<h1>ホーム</h1>
<p>
修得した技術や所感をまとめていきたいと思っています。
<a href="https://qiita.com/flowerhill">Qiitaもやってます</a>
</p>
위와 같이 layout과 view를 작성하면, 브라우저로부터 액세스했을 때 다음과 같은 html을 생성한다
<!DOCTYPE html>
<html>
<head>
<title>ブログ</title>
</head>
<body>
<h1>ホーム</h1>
<p>
修得した技術や所感をまとめていきたいと思っています。
<a href="https://qiita.com/flowerhill">Qiitaもやってます</a>
</p>
</body>
</html>
화면에서 표시하면 이렇게 된다.
요약
Rails에서 Controller를 호출했을 때, 어떻게 View를 호출하는지 대략 이해할 수 있었다고 생각한다.
erb의 쓰는 방법이나 layout의 사용법까지 습득할 수 있었다.
사실은 헬퍼 메소드나 테스트(rspec)의 쓰는 방법도 정리하고 싶었지만, 길어지기 때문에 일단 여기까지. (솔직히 지쳤어…)
참고
Reference
이 문제에 관하여(Rails view를 만드는 방법 (튜토리얼 3장 정리)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/flowerhill/items/b79615aa3b473eb84c2d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)