025K
@025K

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

each文、image_tagによる投稿した複数画像表示の際に表示されてしまう謎の文字(コード)を何とかしたい。

each文、image_tagによる投稿した複数画像表示の際に表示されてしまう謎の文字を何とかしたい。

こんにちは。railsでSNS系のファンサイトを作ってます初心者です。
carrierwaveを使って複数枚画像を投稿することに成功させて、投稿詳細画面で投稿した複数枚の画像をすべて表示させるのに成功したのですが、画像が表示される個所とタイトルや説明が並ぶ箇所の間に変な文字が表示されてしまい困ってます。
ちなみに投稿一覧画面では、そのような文字は表示されていなく、詳細画面のほうだけ表示されてしまいます。(一覧画面では最初の一枚だけを表示させたいのでeach文は使っていません。)

発生している問題

2022-06-16.png

↑画像暗くて申し訳ないです。一番下に見える大きなaがタイトルです。
aから↑、緑の草が見える写真の下にある謎の文字(コードみたいなの)をなんとかしたいです

詳細画面のhtml

show.html.erb
<div class="container">
  <div class="row">
    <div class="col">

#ここがおかしいのかな。
       <%= @post.images.each do |image| %>
         <%= image_tag image.to_s %>
       <% end %>


      <h3><%= @post.title %></h3>
      <h5><%= @post.caption %></h5>
      <div class="row">
        <div class="col">編集|削除</div>
        <div class="col"><%= @post.created_at.strftime('%Y/%m/%d') %></div>
      </div>
    </div>
  </div>
</div>

問題ないかなぁとは思ってますが、コントローラーも載せておきます。

class PostController < ApplicationController
  
  def show
    @post = Post.find(params[:id])
  end
  
 private

  def post_params
    params.require(:post).permit(:title, {images: []}, :caption, :post_genre)
  end
end

試したこと

参考記事:
https://qiita.com/mattan5271/items/a0ff8ab9a830d2cfcc7e
こちらの記事をもとに実装させました。
ネットで調べてみたのですがそれに当てはまる解決法は見当たらなく、

         <%= image_tag image.to_s %>

の箇所を試しに

         <%= image_tag (image.url)%>

に変更しても結果は変わらず。
お手上げ状態なので助けてほしいです。

0

1Answer

自己完結しました。
『<%= %>』と記述してしまうと変なコードまで表示されてしまうことを思い出し、

       <%= @post.images.each do |image| %>  ←ここを

       <% @post.images.each do |image| %> ←に変更

         <%= image_tag image.to_s %>
       <% end %>

することによって解決しました。

0Like

Your answer might help someone💌