Ruby on Rails 開発メモ

この記事は、Ruby on Railsで学んだプログラミングの内容について、軽くメモしておくための記事です。
 
今後、この記事の中から改めて1つの記事としてまとめることもあるかもしれませんが、学習中のメモで誤った解釈をしている可能性があるので注意してください。

Railsでのコメントアウト

 
Railsでコメントアウトをする場合、2通りの方法がある。
 

一つ目の方法

 
1つ目は「#」を使う方法。
 
仮に
 

<% @XXX.each do |obj| %>

 
のように記述した場合、このコードをコメントアウトするためには「#」をrails内の先頭にくっつけて
 

<%# @XXX.each do |obj| %>

 
このようにすれば良い。
このコメントアウトは、テキストエディタによっては、command + / などを押すことで、選択範囲を自動でコメントアウトしてくれる場合もある。
 
ただし、erbで記述した場合、HTMLのプログラムだと判定されるとうまくいかない。
また、ここで入力する「#」と、その一つ前にある「%」のあいだにスペースを入れてはいけない。
 

2つ目の方法

 
2つ目は「=begin」「=end」を使う方法。
一見、コメントアウトにしては変な定型に見えるが、他言語で使われるところの「/*」「*/」だと考えれば良い。
 
つまり、「=begin」は開始点、「=end」は終了点である。
先ほどのコードを例をとってコメントアウトするには
 

<%
  =begin
    @XXX.each do |obj|
  =end
%>

 
このように記述すれば良い。
ここで注意点。
 
先ほどの例では問題なくコメントアウトできたが、「=begin」「=end」は、文頭に記述しないと機能しないと言う問題がある。
つまり先ほどのコードを使うと
 

<ul>
  <% XXX.each do |obj| %>
    <li></li>
  <% end %>
</ul>

 
このような場合、
 

<ul>
  <% =begin XXX.each do |obj|  =end%>
    <li><li>
  <% =begin end  =end%>
</ul>

 
では動作しない。
実際には
 

<ul>
  <%
    =begin
  %>
  <% XXX.each do |obj|%>
    <li></li>
  <% end %>
  <%
    =end
  %>
</ul>
#or
<ul>
  <%
    =begin
      XXX.each do |obj|
        <li></li>
      end
    =end
  %>
</ul>

 
このように書くのが望ましい。
文頭におかなければならないというのは、インデントも例外ではない。
 
先ほどのコードで「=begin」「=end」の前にインデントが入っていた場合、コメントアウトは機能しない。
最後にerbのHTML内で記述したrails文のコメントアウトをメモしておく。
 

HTMLも一緒にコメントアウト

 
先ほどのコードのように、erbで書かれたコードでHTMLタグの中に記述されたコードをコメントアウトする場合、HTMLでコメントアウトした中で、Railsのコメントアウトを記述することで実装できた。
HTMLでコメントアウトしなくても、=begin =endを使えば、まとめてコメントアウトすることができた。
 
具体的には以下である。
 

<!--
<ul>
  <%# XXX.each do |obj|%>
      <li></li>
  <%# end %>
</ul>
-->
<%
=begin
%>
<ul>
  <% XXX.each do |obj|%>
      <li></li>
  <% end %>
</ul>
<%
  =end
%>

 
まずHTMLでコメントアウトする場合は「<!--」と「-->」を使う。これは「/*」「*/」と同じ役割を持つ。
例のようにHTMLでコメントアウトしている状態で、さらにRailsでコメントアウト(#)することで、コードを残したまま動作しないようにできる。
 
HTMLの中でRailsの記述を行っている場合は、=begin =endでコメントアウトした方が管理しやすいかも。
 

コメントアウトのまとめ

 
今回のように

  1. #
  2. =begin =end
  3. <!-- -->

を組み合わせて使うことで、erbで書いたコード内でコメントアウトを使うことができました。
 
メモ書き程度に書きなぐった文章なのでところどころおかしいかもしれません。
また、他にもコメントアウトする方法があるかもしれませんが、見つかり次第追記していきます。
 
 
その時は、改めて記事にするかもしれません。
またこの記事には他の内容も追加していく予定です。

おすすめの記事