こんにちは。KBMJのWebプログラマーの本多です。
通常、HTMLのコメントアウトと言えば
<!-- ここにコメントを書きます -->
と書きますが、この場合表示はされなくてもソース上には残りますよね。
コメントを残してソースの意味などを記入する分には良いのですが、例えば「一旦表に見せるのは不味い」などの事情があり、
急遽隠す場合などにはソースからも見られたくない…そんな時に役に立つのが、今回紹介するRails的コメントアウトです。
文字通り「見えなくなります」。
やり方はいたって簡単。
RHTMLファイルで
<!-- ここにコメントを書きます -->
と書くべきところを
<% if false %> ここにコメントを書きます <% end %>
と書きます。
if文とは、条件を満たす場合のみ中のコードを実行(記述)する。
という訳で if と false の2つを組み合わせる事で「必ず条件に合致しない」という意味になります。
必ず条件に一致しないため、「中のコードは実行されない」 = 「見れない」という訳ですね。
また、コメントの中にRailsのコードを書いていた場合、HTMLコメントアウトの場合ですと中のコードが実行され、余計な負荷がかかりますが、Rails的コメントアウトの場合は中のコードは実行されませんので、よからぬ負荷を軽減してくれたりもします。
結論:邪魔なコードはHTMLソースからも見えなくしちゃおう。
でも静的なHTML文の中でこれを書いても意味はないです・・・。
RHTMLファイルの中でのみ利用してください。
GOOD RAILS!!
<%# ~ %>
でいいと思いますが
written by h / 2008.03.22 16:49
これは普通にerubyのコメント記法 <%# ... %> を用いるのよりもRails的に何かしらの利点があるということでしょうか。
written by keita / 2008.03.23 13:15
hさん、keitaさん。ありがとうございます。
ただコメントを書くのみですと、ご指摘いただいた手法の方がやり方としては良いと思います。
今回紹介した手法が発揮されるのは、ページ内のコンテンツを丸ごと見せなくする場合です。その中に<%= %>でメソッドを実行していたりすると、その処理も行わずに済む、というものです。
ちなみに if false を if true に変えるとコメントアウトしたコンテンツをすぐ表示できるように切り替えられるのもメリットの1つでしょうか。
まぁ、何かしらの理由で切り替える必要があるのであればその条件文をif文に書けば良いのですが・・・。
written by honda / 2008.03.29 15:37
丁寧な解説をありがとうございました。特定範囲をコメントアウトする場合だったのですね。記事の意図を誤解してしまったようです、失礼致しました。
written by keita / 2008.04.01 13:33