/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

erbのテンプレートをそのままソースコード内に書いてしまう

erbの使い方を毎回忘れてしまうので、メモメモ。

ソースコード

何の意味もないソースコードです。1,2,3,4,5っていうのを連続で出すだけです。

require 'erb'

array = [1,2,3,4,5]

contents = <<EOS
<% array.each do |a| %>
<h1><%= a %></h1>
<% end %>
EOS

erb = ERB.new(contents)
result = erb.result(binding)

puts result

実行すると以下。

$ ruby test.rb 

<h1>1</h1>

<h1>2</h1>

<h1>3</h1>

<h1>4</h1>

<h1>5</h1>

$ 

 

覚えておくべきポイント

この中で覚えておくべきポイントは2つ。

EOS

<<EOS~EOSで囲むとそこにコードがそのままかける。別ファイルで用意するのとかが面倒の場合に便利。別ファイルに準備した場合はFile.read('file_name')っていう感じで準備したファイルを読めばOK。

テンプレートにrubyコードを実行する場合の書式

<% ~ %>でコードが書ける、<%= ~ %>で変数参照。これも結構忘れる

 

終わりに

正式名称がわからないから自分のイメージの言葉で説明しちゃってますね。ちゃんとした言葉を覚えないと。

それではまたー。

参考にしたサイト: Ruby/ERB/静的HTMLを出力する [俺の基地]

たのしいRuby 第5版

たのしいRuby 第5版

広告を非表示にする
Real Time Web Analytics