1
0

More than 3 years have passed since last update.

Railsで複数行コメントアウトするときの、=begin~=endの使い方

Posted at

Railsのビューファイル(ERB)のコードを複数行コメントアウトする方法が分からなかったので調べて出てきた構文を使ってみました。

複数行コメントアウトする方法についての記事はすぐに見つかったのですが、記事通りに実装してもうまくコメントアウトできずちょっと詰まったので備忘録も兼ねて記載します。

複数行コメントアウトする方法:=begin ~ =end

最初に目を通した記事は、「Railsドキュメント」の「ビューについて」というページです。

このページの真ん中あたりで、=begin ~ =end の使い方が紹介されています。

comment_out.rb
<% =begin %>
<%= コメント %>
<% =end %>

「なーんだ、簡単じゃん」と思ってすぐ自分のコードに追加したのですが、まったくコメントアウトされません、、、

bad_sample1.rb
<div class="container">
  <h3>サンプルページ</h3>
  <div class="contents">
    <%= form_tag('frm_1', name: 'frm_1', id: 'frm_1') do %>
      <% =begin %>
        このdivタグ以下をコメントアウトしたいのにコメントアウトされない!
        <div class="contents_row">
          <%= label_tag :input_date, '日付', class: 'mar_l_1em' %>
          <%= text_field_tag ::input_date, '', class: 'date_field_all calendar', maxlength: 10 %>
        </div>
      <% =end %>
      <div class="contents_row">
        <%= label_tag :prefecture, '都道府県', class: 'mar_l_1em' %>
        <%= select_tag :prefecture, options_from_collection_for_select(@prefecture, :prefecture_cd, :prefecture_name), class: 'text_field', include_blank: false %>
      </div>
      ~~~
<div>

色々コードをいじってみた結果、=beginと=endは、インデントに関係なくエディタの行の先頭(左詰め)に記述しなければ動かないということが分かりました。

ok_sample1.rb
<div class="container">
  <h3>サンプルページ</h3>
  <div class="contents">
    <%= form_tag('frm_1', name: 'frm_1', id: 'frm_1') do %>
      <% ↓改行
=begin %> ←「=begin」をインデントを無視して左詰めで記述するとコメントアウトされる
        <div class="contents_row">
          <%= label_tag :input_date, '日付', class: 'mar_l_1em' %>
          <%= text_field_tag ::input_date, '', class: 'date_field_all calendar', maxlength: 10 %>
        </div>
      <% ↓改行
=end %>
      <div class="contents_row">
        <%= label_tag :prefecture, '都道府県', class: 'mar_l_1em' %>
        <%= select_tag :prefecture, options_from_collection_for_select(@prefecture, :prefecture_cd, :prefecture_name), class: 'text_field', include_blank: false %>
      </div>


```

(なんでRailsドキュメントには他のコードと同様に「<% =begin %> ~ <% =end %>」で紹介されているのかがワカラナイ・・・)

終わりに

なぜ「=begin」を普通に「<%%>」で囲むとコメントアウトできないのか(改行して左詰めで書くとコメントアウトされるのか)の理由であったり、自分が↑で記述した内容に対してご指摘があればコメントにてご記載いただけると大変ありがたいです!
お読みいただきありがとうございました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0