ERBとは?
「Embedded RuBy」の略でHTMLにRubyのコードを埋め込みますと言う意味になります。RailsのMVCのビュー部分に当たる「ビューテンプレート」のことで、HTMLによく似た記述をします。ファイルの拡張子は「.html.erb」となります。
ERBのメリット
- ビューヘルパーを利用することで、データベースから取得した値に基づいてシンプルなコードでフォーム等の要素を記述できる。
ERBの記述ルール
記号 | 説明 |
---|---|
<% %> | Rubyのソースコードとして実行させる |
<=% %> | Rubyのコードの実行結果(コントローラで定義したインスタンス変数等)を出力 |
<%# %> | コメント構文 |
<% if false %>
<% end %> |
条件文で常にfalseになるため常に無視されます。 |
<=% begin %>
<% end %> |
複数行コメントに使えます。(上の文よりもよりコメントと言うことがわかりやすいです。) |
<!-- --> | HTMLコメントです。クライアント側にも見えてしまうので通常はあまり使うことはないでしょう。 |
実装例
<=% %>:Rubyのコントローラー側の実行結果を出力
app/views/(コントローラー名)/index.html.erb
コントローラーで定義されたインスタンス変数(テンプレート変数)「@helloworld」を出力します。
1 |
<%= @helloworld %> |
app/controllers/(コントローラー名)_controller.rb
コントローラーで、「@helloworld」というインスタンス変数(テンプレート変数)を定義します。
1 2 3 4 5 6 |
class TestController < ApplicationController def index @helloworld = 'Hello World!' render template: 'test/index' end end |
実行結果
slimやhamlは使うべきか?
結論ERBだけ学習しておけば大丈夫です。
- Rails標準の記述スタイルだから。
- Web標準技術であるHTMLに記述が近くて学習コストが低い、理解しやすい。
- Railsも進化を重ねてきていてパフォーマンスもslimやhamlと変わらなくなってきている。(以前はslimやhamlの方が変換などのパフォーマンスは高かったようです。)
ただ、slimやhamlを使っている現場はいまだに多いのでソースだけはRailsエンジニアとしてキャリアを積んでいきたいのであれば、ある程度学習は必要になるかもしれません。
この記事へのコメントはありません。