Rubyでテキストにコードを埋め込む。|ERBでテンプレート利用

| コメント(0) | トラックバック(0)

ruby標準モジュールのERBの使い方紹介です。

MVCのViewの実装がERBを使えばさくっとできるようになります。

# ERBの記法

  <%= code %>        codeを実行して、結果を埋め込む
  <%  code %>        codeを実行するだけ、結果は埋め込まない
  %code              行頭に%を   
  <%# comments %>    コメント
  %%                 codeを実行しない場合の行頭%


# trim_mode 空白や改行を消す。
  ERB.new の第3引数のこと


#  trim_mode='-'
   <%-              行頭の空白文字削除
   -%>              行末の改行を出力しない


# trim_mode='%'
  行頭%で始まる行は、改行を出力しない


# trim_mode  <>
ruby
require 'erb'

str = '晴天'
contents = <<EOS
今日の天気は<%= str %>なり。

ループの開始
<%  (1..3).each do |x| %> 
   <%= x %> 回目
<%  end %> 

EOS

erb = ERB.new(contents)
puts erb.result(binding)
result
今日の天気は晴天なり。

ループの開始

   1 回目

   2 回目

   3 回目

trim_mode='-'の利用

ruby
require 'erb'
contents =<<EOS
ループの開始

<%- (1..3).each do |x| -%>
   <%= x %> 回目
<%- end -%>

EOS

erb = ERB.new(contents,nil,'-')
puts erb.result(binding)
result
ループの開始

   1 回目
   2 回目
   3 回目

trim_mode='%'の利用

ruby
require 'erb'
contents =<<EOS
ループの開始
<% (1..3).each do |x| %>
   <%= x %> 回目
<% end %>

% (4..6).each do |x|
   <%= x %> 回目
% end 


EOS

erb = ERB.new(contents,nil,'%')
puts erb.result(binding)
result
ループの開始

   1 回目

   2 回目

   3 回目


   4 回目
   5 回目
   6 回目

trim_mode='<>'の利用

ruby
require 'erb'
x=0
contents =<<EOS
ループの開始
<% (1..3).each do |x| %>
   <%= x %> 回目
<% end %>


% (4..6).each do |x|
   <%= x %> 回目
% end 


EOS

erb = ERB.new(contents,nil,'<>')
puts erb.result(binding)
result
ループの開始
   1 回目
   2 回目
   3 回目


% (4..6).each do |x|
   0 回目
% end

関連記事

トラックバック(0)

トラックバックURL: http://mukaer.com/cgi-bin/mt/mt-tb.cgi/106

コメントする

PR

PR





検索

Loading

メニュー

twitter