Railsアプリケーションのビューが*.erb.html
形式であるのはなぜですか? 「erb」とはどういう意味ですか?
erbは「Embedded Ruby」の略です。 .html.erb
または.erb.html
ファイルは、Rubyコードが埋め込まれたHTMLです。 RailsはRubyを評価してコンテンツを動的にファイルに追加し、レンダリング用の「純粋な」HTMLファイルを出力します。
@Chowlettが前述したように、erbはEmbedded Rubyの略です。ファイルを「.html.erb」として定義すると、Rubyコードが埋め込まれたHTMLファイルであり、Railsファイルの「.rhtml」拡張子に似ています。
「.html.erb」と「.rhtml」の詳細なニースの違いを見ることができます ここをクリック
「.rhtml」と同じように、「。rjs」拡張子を「.js.erb」または「.rxml」から「.xml.erb」に変更することもできます
この形式は、この場合「erb」であるテンプレートエンジンからコンテンツタイプを分離します。
スチュアート・エリスの ERBテンプレートの紹介 から:
ERB(Embedded Ruby)はRubyの機能であり、テンプレートからあらゆる種類のテキストを任意の量で簡単に生成できます。テンプレート自体は、プレーンテキストと変数置換およびフロー制御用のRubyコードを組み合わせており、テンプレートの作成と保守が容易になります。
ERBはWebページの生成で最もよく見られますが、XMLドキュメント、RSSフィード、ソースコード、およびその他の形式の構造化テキストファイルの生成にも使用されます。単体テストスイートなど、標準パターンの多くの繰り返しを含むファイルを作成する必要がある場合、非常に価値があります。
ERBの主要コンポーネントは、RubyアプリケーションおよびRakeタスク内で呼び出すことができるライブラリです。このライブラリは、テンプレートとして任意の文字列を受け入れ、テンプレートのソースに制限を課しません。コード内でテンプレートを完全に定義するか、外部の場所に保存して必要に応じてロードします。これは、ファイル、SQLデータベース、または使用する他の種類のストレージにテンプレートを保持できることを意味します。
Rubyディストリビューションには、コードを追加せずにファイルに保持されているテンプレートを処理できるコマンドラインユーティリティも含まれています。論理的に、このユーティリティはerbと呼ばれます。
ERBはRuby標準ライブラリの一部です。他のソフトウェアをインストールする必要はありません。
元の記事には、ERBの使用に関する詳細と短いガイドが含まれています。 公式ドキュメント も読むことができます。
注:上記の引用されたブロックは、ERBテンプレートへのリンクまたはそのユーザーの作業ではないことを認めずに、別のユーザーによって回答として以前に投稿されました。その投稿は盗作のために(当然)削除されました。しかし、私はそれが有用な答えだと思ったので、元の著者であるStuart Ellisに適切な帰属を与える引用を再投稿しました。
ERbとも呼ばれる埋め込みRubyは、Webページに動的コンテンツを含めるための主要なテンプレートシステムです。 -マイケル・ヘルトル
from template-format ERBテンプレートを含むファイルには任意の名前を付けることができますが、ファイル名の拡張子は.erbで終わることが慣例です。 Railsでは、テンプレートファイルの出力タイプの拡張子に.erbが必要です。そのため、layout.html.erbのような名前はHTMLテンプレートを示します。
erbファイルは単にテキストを出力します。これ以上何もない。テキストは、ファイル内の静的テキストとRubyコードの組み合わせに依存します。 erbを使用して、Railsのデフォルトの使用方法であるhtmlを生成できます。これは、ブラウザーがページを表示するために必要なものだからです。
Rubyには特定のデフォルトがありますデフォルトの1つは、コントローラーがhtmlページをレンダリングすることです。ただし、Web APIを記述すれば、.xmlまたは.jsonまたは.csvで簡単に応答させることができます
Erbは、テキストを生成するライブラリクラスです。これ以上何もない。静的テキストとRubyコードが混在するファイルが必要です。 Rubyコードを実行し、コントローラーの場合はhtmlである別のファイルに結果を書き込みます
ERBはRubyのテンプレートクラスであり、Railsの.rhtmlまたは.erb.html(Rubyが埋め込まれたHTML)でよく使用されます。
Rubyドキュメントの詳細を以下に示します。