<p>
<%= @tags.each do |tag| %>
<a href="#"><%= tag %></a>
<% end %>
</p>
こうすると、展開されたデータだけじゃなく@tags
が画面に表示されてしまう。
test test test test
[test,test,test,test] # これが表示される
原因が分からず苦しんでいたのですが、each
の所に=
が付いてはいけないのではないかと思って消してみると表示されなくなった!!
irbで調べてみたのだが、
irb(main):020:0> a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
irb(main):021:0>
irb(main):022:0*
irb(main):023:0* a.each do |x|
irb(main):024:1* x
irb(main):025:1> end
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
irb(main):026:0> a.each do |x|
irb(main):027:1* puts x
irb(main):028:1> end
1
2
3
4
5
6
7
8
9
10
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # こいつが表示される
each
の所で、=
を書いちゃうと変数展開されて、@tags
が表示されてしまったってことかな。
また、はまりそうなのでメモとして残しておく。