Rails 문자열,숫자 관련 뷰 헬퍼2

rails·2021년 11월 7일
0

Rails 튜토리얼

목록 보기
8/11

문자열, 숫자 관련 뷰 헬퍼 2

뷰 헬퍼에는 문자열 또는 숫자 데이터를 가공해서 사람의 눈으로 읽기 쉽게 가공 해주는 메소드 들이 있다.

cycle 메소드

  • each 블록 내부에서 지정된 값의 목록에서 값을 뽑아 출력한다.
  • 특정 간격으로 테이블 색을 다르게 지정 하는데 유용하다.
<% @objects.each do |obj| %>
  <tr style="background-color: <%= cycle('#FFFFFF', '#FFFF99') %>" >
    <td><%= obj.id %></td>
  </tr>
<% end %>

current_cycle 메소드

  • cycle 메소드로 현재 each 안에서 선택된 값이 무엇 인지 출력 한다.
<% @objects.each do |obj| %>
  <tr style="background-color: <%= cycle('#FFFFFF', '#FFFF99') %>" >
    <td><%= obj.id %></td>
  </tr>
  <tr style="background-color: <%= current_cycle %>" >
    <td><%= obj.name %></td>
  </tr>
<% end %>

reset_cycle 메소드

  • 사이클 선택을 초기화 한다.

highlight 메소드

  • 문자열에 포함된 특정 서브스트링을 강조 표시 한다.
<%= highlight(msg, 'test') %>

concat 메소드

  • <%= %> 블록이 아니라 <% %> 블록에서도 출력을 한다. if 문 과의 조합등에 유용하다.
<% concat imag_tag 'icon.png' %>

문자열을 이스케이프 하지 않는법

  • 이스케이프란 예약문자 <, >, & 등을 &lt;, &gt;, &amp; 등으로 치환 하는것.
  • Rails 3.0 이후에는 <%= %>를 통해 출력하는 값이 자동으로 이스케이프 처리 된다.
<%== @obj %>

혹은

<%= raw(@obj) %>

문자열에서 태그 제거 하기

  • 게시판 등에서 HTML코드를 허용 하면 <script>, <iframe> 등에 의해 보안 취약점이 생길 수 있다.
  • sanitize 메소드를 이용 하면 특정 태그만 허용 하도록 할 수 있다.
<%= sanitize msg, tags: %w(br p a), attributes: %w(class href) %>

c언어의 printf 처럼 형식 지정 해서 출력하기

  • sprintf 메소드를 이용 하면 마치 씨언어의 프린트 문 처럼 출력이 가능 하다.
<%= sprintf("%.10s님 어서오세요. 현재 잔액은 %.1f만원 입니다.", @user, @balance) %>
profile
rails

0개의 댓글