erb 配列をループする方法
概要
Ruby erb テンプレート システムを使用して配列を単純にループすることはできません…
これが私のテンプレートです:
<% ['foo', 'bar'].each do |val| -%>
<%= val %>
<% end -%>
コマンドラインと結果は次のとおりです
erb test.erb
/usr/share/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/erb.rb:896:in `eval': test.erb:1: syntax error, unexpected ';' (SyntaxError)
'foo', 'bar'].each do |val| -; _erbout.concat "\n"
^
test.erb:3: syntax error, unexpected ';'
; end -; _erbout.concat "\n"
^
from /usr/share/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/erb.rb:896:in `result'
from /usr/share/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/erb.rb:878:in `run'
from /usr/share/rvm/rubies/ruby-2.4.1/bin/erb:149:in `run'
from /usr/share/rvm/rubies/ruby-2.4.1/bin/erb:170:in `<main>'
この非常に単純な例のどこが間違っているのでしょうか?
免責事項: 私は Ruby と erb の初心者です ^^
解決策
「%」の前に「-」を入れるべきではありません。
<% ['foo', 'bar'].each do |val| %>
<%= val %>
<% end %>
これは機能するはずです。