LoginSignup
8
3

More than 5 years have passed since last update.

viewで`each`すると、変な文字が表示されてしまう

Posted at
<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が表示されてしまったってことかな。

また、はまりそうなのでメモとして残しておく。

8
3
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3