🔇

【Ruby】コメントアウト

に公開

コメントアウトできない、どうやるんだっけという質問をちょくちょく受けるので、自分自身のアウトプットがてら、Rubyのコメント記法とERBファイルでの正しいコメントアウト方法について、ここに軽くまとめておこうと思います。

環境

  • OS: Windows
  • IDE: Cloud9

コメントアウトとは

コメントコメントアウトとは、プログラム内にコードとは異なる目的で書かれるもので、実行時には無視されるものです。コードの意図や動作を他の開発者に伝えるための注釈や説明文として使われます。また、特定のコードを一時的に無効化し、実行から除外するためにも使用されます。

記法の種類

Rubyにおけるコメント、コメントアウトの主な記法は以下の2種類です。

  1. #(シャープ)
  2. =beginで始めて=endで終わる

単一行のコメントか、複数行のコメントアウトかというところですね。

加えて、以下のようなHTMLなどで使われるコメントアウトの記法も挙げておきます。

  1. <!-- -->

記述法

ではRubyにおけるコメントやコメントアウトの具体的な使い分けについて順にみていきましょう。

#(シャープ)

まず、#は単一行コメントを表します。
この記号の後ろに来るテキストはすべて、その行の終わりまでコメントと見なされ、1行だけのコメントを追加する際に使われます。

# これは単一行コメントです。
puts "Tarou" # Tarouと出力する。これも単一行コメントです。

=begin =end

次に、=begin=endを使ったコメントアウトです。
これは複数行のコメントを記述する際に使用されます。
=beginで始まり、=endで終わるまでの間に入るすべての行がコメントとして扱われます。

=begin
これは複数行の
コメントアウトです
=end

<!-- -->

さらに、HTMLや一部のプログラミング言語では、<!-- -->という記法でコメントアウトを行います。この間に入るテキストはコードとして認識されないため、実行時には無視されます。

<!-- これはHTMLのコメントアウトです -->
<p>これは普通のテキストです</p>
ショートカットキーについて

コメントアウトしたい行の頭にカーソルを合わせて、Macならcommand⌘ + /を、WindowsならCtrl + /を押すとコメントアウトされます。
また、もう一度その位置で同じショートカットキーを押すとコメントアウトは解除され、元に戻ります。

実際の使用例

Rubyファイル(.rb)での使用例

例えばモデルファイルでコメントを書きたいとき。
モデルファイルは.rb、Rubyですね。
ということは、単一行なら#、複数行なら=begin =endです。

models/post.rb
class Post < ApplicationRecord
  =begin
  belongs_to :user
  has_many :favorites, dependent: :destroy
  has_many :post_comments, dependent: :destroy
  =end
  
  # タイトルが存在すること
  validates :title, presence: true
  # 本文が存在すること、200文字以下であること
  validates :body, presence: true, length: { maximum: 200 }
end

ERBファイル(.html.erb)での使用例

次はビューファイルでの使用例。ファイルが.html.erbの場合。
これはRuby on Railsで使われるファイル形式、RubyとHTML両方の記法を含むものです。

例えば、エラー等で一時的に特定の記述を無効化したい、コメントアウトしたいという場合は以下のようになります。

views/posts/index.html.erb
<%= post.user.name %>
<%# post.title %>  
<%#= post.body %>
<!-- これで上記の2行は実行時に除外されます -->

おわりに

僕も最初、コメントアウトがうまくいかず確認ができないで困っていた時がありました。
コメント、コメントアウトは付け方や付ける位置によってさらにエラーが発生することもありますし、適した記法でなければうまくいかないので初めはむずかしいところもありますよね。
色々な書き方があり興味深いです。

最後まで読んでいただきありがとうございました。
新しい情報はどんどんキャッチしていきたいので、プラスの情報や修正点等ありましたらご連絡いただけますと幸いです。

参考サイト

Discussion