문자열, 숫자 관련 뷰 헬퍼 2
뷰 헬퍼에는 문자열 또는 숫자 데이터를 가공해서 사람의 눈으로 읽기 쉽게 가공 해주는 메소드 들이 있다.
cycle
메소드
<% @objects.each do |obj| %>
<tr style="background-color: <%= cycle('#FFFFFF', '#FFFF99') %>" >
<td><%= obj.id %></td>
</tr>
<% end %>
current_cycle
메소드
<% @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' %>
문자열을 이스케이프 하지 않는법
<
, >
, &
등을 <
, >
, &
등으로 치환 하는것.<%= %>
를 통해 출력하는 값이 자동으로 이스케이프 처리 된다.<%== @obj %>
혹은
<%= raw(@obj) %>
문자열에서 태그 제거 하기
<script>
, <iframe>
등에 의해 보안 취약점이 생길 수 있다.sanitize
메소드를 이용 하면 특정 태그만 허용 하도록 할 수 있다.<%= sanitize msg, tags: %w(br p a), attributes: %w(class href) %>
c언어의 printf 처럼 형식 지정 해서 출력하기
sprintf
메소드를 이용 하면 마치 씨언어의 프린트 문 처럼 출력이 가능 하다.<%= sprintf("%.10s님 어서오세요. 현재 잔액은 %.1f만원 입니다.", @user, @balance) %>