記事内にはプロモーションが含まれています

【Ruby】コメントアウトの書き方まとめ!複数行やショートカット、Railsでの記述方法まで

【Ruby】コメントアウトの書き方まとめ!複数行やショートカット、Railsでの記述方法まで Ruby

プログラミングにおいて、コードの補足説明を書いたり、一時的に処理を無効化したりするために欠かせないのが「コメントアウト」です。

Rubyにはシンプルに1行をコメントにする方法から、複数行をまとめて無効化する構文、さらにはRuby on RailsなどのWeb開発で使う特殊な記法まで、状況に応じた使い分けが存在します。

「複数行を一気にコメントアウトしたいけれど、やり方がわからない」
「Railsのビューファイル(ERB)でコメントアウトが効かない」

そんな悩みを持つ方のために、この記事ではRubyにおけるコメントアウトの全パターンを、エディタの便利なショートカットキーや実務での注意点と合わせて徹底解説します。

【本記事の信頼性】
プロフィール
執筆者:マヒロ
  • 執筆者は元エンジニア
  • SES⇒大手の社内SE⇒独立
  • 現在はこじんまりとしたプログラミングスクールを運営
  • モットーは「利他の精神」

Rubyでコメントアウトする基本の方法(1行)

Rubyでコメントを書く際に最も基本的で、かつ頻繁に使われるのがシャープ記号(#)を使った方法です。

行の先頭、またはコードの途中に # を記述することで、それ以降の文字列がプログラムとして実行されなくなります。

行頭に「#」をつけてコメントにする

行の一番左に # を置くと、その行全体がコメントとして扱われます。
処理の説明や、一時的にコードを無効化したい場合によく利用されます。

# これはコメントです。実行されません。
puts "Hello, Ruby!"

# puts "この行も実行されません"

実行結果

Hello, Ruby!

1行目と4行目は、先頭に # が付いているためRubyのインタプリタ(実行プログラム)によって無視されます。

結果として、2行目の puts "Hello, Ruby!" だけが実行され、画面にメッセージが表示されます。

行の途中に「#」をつけてコメントにする(インラインコメント)

コードの後ろに続けてコメントを書きたい場合は、行の途中に # を置きます。
#
より前のコードは有効ですが、# 以降はすべてコメントとみなされます。

price = 100 # 商品の価格を設定
tax = 1.1   # 税率(10%)

puts price * tax # 計算結果を出力

実行結果

110.0

変数の定義や計算式の直後に、その処理が何をしているかのメモを残すことができます。

ただし、1行が長くなりすぎると可読性が下がるため、長文になる場合は行を分けて上の行にコメントを書くのが一般的です。

複数行をまとめてコメントアウトする方法

長いロジックや、複数のメソッドを一時的に無効化したい場合、1行ずつ # を書くのは手間がかかります。

Rubyには、複数行を囲んでコメントアウトするための専用の構文が用意されています。

=begin と =end を使う

=begin=end で囲まれた範囲は、すべてコメントとして扱われます。

この構文を使う際は、必ず行頭(インデントなし)に記述する必要があります。

puts "処理開始"

=begin
ここから下の行は
すべてコメントアウトされます。
puts "このコードは実行されません"
計算処理なども無視されます。
=end

puts "処理終了"

実行結果

処理開始
処理終了

=begin から =end までの間にあるすべての行が無視されました。

注意点として、=begin=end の前にスペースが入っているとエラーになったり、コメントとして認識されなかったりします。
必ず行の先頭に記述してください。

実務では「#」の連続使用が一般的?

実は、Rubyの現場開発において =begin=end が使われることはあまり多くありません。

理由は、インデントが崩れて見づらくなることや、後述するエディタのショートカットキーを使えば # での複数行コメントアウトが一瞬で完了するためです。

基本知識として =begin 構文を覚えておきつつ、普段はエディタの機能を活用することをおすすめします。

効率爆上がり!コメントアウトするためのショートカットキー

VS Code(Visual Studio Code)などのモダンなテキストエディタには、選択した範囲を一発でコメントアウトするショートカットキーが搭載されています。

これを使えば、1行ずつ # を打つ手間から解放されます。

VS Codeでのコメントアウトショートカット

  • Windows / LinuxCtrl + /
  • MacCommand + /

手順は以下の通りです。

  1. コメントアウトしたい行(複数行可)をマウスやキーボードで選択します。
  2. 上記のショートカットキーを押します。
  3. 選択したすべての行の先頭に # が挿入されます。
  4. もう一度同じキーを押すと、コメントアウトが解除(アンコメント)されます。

この操作はRubyに限らず、HTMLやJavaScriptなど他の言語でも同様に使えるため、覚えておくと開発効率が劇的に向上します。

Rails(ERB)ファイルでのコメントアウト

Ruby on Railsのビューファイル(.html.erb)では、HTMLとRubyのコードが混在しています。

そのため、何をコメントアウトしたいかによって記述方法を変える必要があります。

Rubyコード(ERBタグ)をコメントアウトする

ERBファイル内でRubyの処理を無効化したい場合は、<%# ... %> を使用します。

この記法で囲まれた部分は、ブラウザに送信されるHTMLソースには一切出力されません。

<!-- 画面には表示されず、ソースにも残らない -->
<%# Link_to "削除", user_path(@user), method: :delete %>

<p>ユーザー一覧ページです</p>

<%# ... %> の中身はサーバーサイドで完全に無視されるため、機密情報や開発者向けのメモを残すのに適しています。

通常の <% ... %> タグの中に # を書いてもコメントアウトにはならず、エラーの原因になることがあるため注意しましょう。

HTMLコメントとの違いに注意

HTML標準のコメント記法である <!-- ... --> も使えますが、これは挙動が異なります。

<!-- 
  この部分はブラウザの画面には表示されませんが、
  「ページのソースを表示」すると丸見えになります。
-->

HTMLコメントは、ブラウザが「表示しない」だけであり、データ自体はユーザーの元へ送信されています。

重要なロジックや、見られては困るメモなどは、必ずERBのコメントアウト(<%# %>)を使用するようにしてください。

特殊なコメント(マジックコメント・ドキュメント)

Rubyには、通常のコメントアウトとしての機能以外に、プログラムの設定やドキュメント生成のために使われる特殊なコメントの書き方があります。

マジックコメント

ファイルの1行目(または2行目)に特定の形式でコメントを書くと、そのファイルの文字コードや挙動を指定することができます。

これを「マジックコメント」と呼びます。

# frozen_string_literal: true

str = "Ruby"
# str << " on Rails" # エラーになる(文字列が凍結されているため)

# frozen_string_literal: true は、そのファイル内の文字列リテラルをすべて「凍結(変更不可)」にする設定です。

Ruby 3.x系のパフォーマンス向上やメモリ節約のために、最近のRailsプロジェクトなどで標準的に採用されています。

ただのコメントに見えますが、プログラムの動作に影響を与える重要な記述です。

ドキュメント用コメント(RDoc / YARD)

クラスやメソッドの直前に書かれたコメントは、ドキュメント生成ツール(RDocやYARD)によって読み取られ、APIリファレンスとして出力されることがあります。

# ユーザーの年齢を計算するメソッド
# @param birthday [Date] 誕生日
# @return [Integer] 年齢
def calculate_age(birthday)
  # ...処理...
end

@param@return といった記法を使うことで、引数の型や戻り値を明記できます。

チーム開発では、後からコードを読む人のために、こうしたドキュメントコメントを残す習慣をつけることが大切です。

Rubyのスキルを活かして年収を上げる方法

以上、Rubyでのコメントアウトの書き方について解説してきました。

なお、Rubyのスキルがある場合には、「転職して年収をアップさせる」「副業で稼ぐ」といった方法を検討するのがおすすめです。

Rubyエンジニアの年収や単価は高い傾向にあるため、転職によって数十万円の年収アップはザラで、100万円以上年収が上がることも珍しくありません。

なお、転職によって年収を上げたい場合は、エンジニア専門の転職エージェントサービスを利用するのが最適です。

今すぐ転職する気がなくとも、とりあえず転職エージェントに無料登録しておくだけで、スカウトが届いたり、思わぬ好待遇の求人情報が送られてきたりするというメリットがあります。

併せて、副業案件を獲得できるエージェントにも登録しておくと、空いている時間を活かして稼げるようなRubyの案件を探しやすくなります。

転職エージェントも副業エージェントも、登録・利用は完全無料なので、どんな求人や副業案件があるのか気になる方は、気軽に利用してみるとよいでしょう。