1
2

More than 3 years have passed since last update.

Railsのビューにeachメソッドで取得したデータの中身が全て表示されてしまう問題解決

Posted at

概要

ERB形式で作ったビューに、eachメソッドを使って下記のように複数のタグを表示出来るような記述を書きました。

ビューファイル
〜省略〜
<div class="card-tag">
    <%= card.tags.each do |t| %>
        <%= t.tag %>
    <% end %>
</div>
〜以下略〜

すると、ブラウザ上では

ブラウザ上での表示
タグのテスト [#<Tag id: 3, tag: "タグのテスト", created_at: "2021-02-10 08:56:05", updated_at: "2021-02-10 08:56:05">]

と、配列全体が表示されてしまい、
いやいや君は別に呼んでないんだよなんじゃらほい状態となってしまったので、
対処法を探す流れとなりました

結論

原因はミスです。ええ、しょうもない凡ミスです。

<%= card.tags.each do |t| %>
ではなく、正しくは
<% card.tags.each do |t| %>
と記述するのが正解でした。
要するに<%のあとに"="が付いたままだったことが原因で、
モデルから取得してきた情報を素材の味を生かしそのまま出力していたという訳ですね。

所感

あれ…この<%の後ろに=が付いているかいないかという凡ミス…以前にもやった気がするなぁ
たしかその時は、いつかまた同じミスを繰り返しそう…と思いましたが、案の定やらかしてしまいました。
こういった凡ミスの特効薬って何でしょうかね?
ヘルパーメソッドが出るたびにこのミスを思い出すしかないか…ああ、またやらかしそう

1
2
0

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
1
2