Rails

Railsのテンプレート(ERB)での動的処理とコメント

More than 3 years have passed since last update.


テンプレートでの動的処理について

Railsのテンプレートでの動的処理とコメントについてのまとめ。(とても初歩)


<%= %>と<% %>の違い

<% 任意のコード %>

  ここのコードは評価されるだけで結果をテンプレートに返さない。

  重荷演算や制御構文の記述に利用。

<%= なんらかの値を返す式 %>

  式の評価結果をテンプレートに挿入。

<div><% price = 1000

result = price * 1.05 %></div>
<div><%= result %></div>

この結果は以下になる。

<div></div>

<div>¥1050.0</div>


コメントについて


1. 処理でのコメント

ハイフンつきで閉じる<%= -%>、<% -%>と後方の空白やスペースを除去できる。

デザインの厳密性がある時などに必要。


2. #によるコメント

<%# … %>

こちらはすべてコメント。

「%」と「#」の間に空白を挟んではいけない。

「#」単体でもコメントになりえる。

<% msg = '表示用' # 以後はコメント %>


3.条件式によるコメント

条件分岐処理を利用したコメント

<% if false %> … <% end %>

<% if false %>

<% msg = '無視される' %>
<%= '無視される' %>
<% end %>

デバッグ時に特定の機能やレイアウトを一時的に無効にしたい場合に利用。

ただ、コメントアウトとしてみにくい。


4.begin endによるコメント

<% =begin %> … <% =end %>でのコメント

<%

=begin
%>
<% msg = '無視される' %>
<%= '無視される' %>
<%
=end
%>

「=begin」と「=end」は行頭に記述しなければいけない。

以下のように書くとエラー。

<% =begin %>

<% msg = '無視される' %>
<%= '無視される' %>
<% =end %>


5.HTMLによるコメント

HTMLの標準的名コメントだが、ユーザのソースに見えてしまう。

<!-- <div>展開式が表示される</div> -->