kazukiayk79
@kazukiayk79

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

画像投稿フォームでのプレビュー表示について

解決したいこと

Ruby on Railsで画像投稿アプリを作成しています。
プレビュー表示を行いたいです。

発生している問題・エラー

投稿フォームで画像ファイルを選択していないと添付の画像のようなアイコンが表示されてしまいます。
画像ファイルを選択した場合は正常に画像が表示されます。
条件分岐も調べて試したのですが、プレビューが表示されなくなったりとうまくいかないためアドバイスいただきたく思います。

該当するソースコード

posts/new.html.erb

 <div class="form-group">
    <%= f.label :image, "画像" %>
    <%= f.file_field :image, id: :post_img %>
  </div>

  <div class="form-group">
      <%= image_tag @post.image.content.url, id: :img_prev if @post.image.url.present? %>
  </div>

  <script type="text/javascript">
    $(function() {
      function readURL(input) {
          if (input.files && input.files[0]) {
          var reader = new FileReader();
          reader.onload = function (e) {
      $('#img_prev').attr('src', e.target.result);
          }
          reader.readAsDataURL(input.files[0]);
          }
      }
      $("#post_img").change(function(){
          readURL(this);
      });
    });
  </script>

image_uploader

 def default_url(*args)
  #   For Rails 3.1+ asset pipeline compatibility:
    ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
  #   "/images/fallback/" + [version_name, "default.png"].compact.join('_')
 end

version :content do
  process resize_to_limit: [500, 500]
end

自分で試したこと

image_tagの条件分岐の変更

0

3Answer

imgタグのsrc属性に、URLではなく生データを渡したい場合は、データURLスキーム フォーマットに整形した文字列にする必要があったかと

see: データ URL

0Like

Comments

  1. @kazukiayk79

    Questioner

    kzt_alias様 お忙しいところが回答ありがとうございます。

    言葉が不足していたので追加したのですが、画像ファイルを選択した場合は正常に画像が表示されます。
    選択しなかった場合のみアイコンが表示される状況を解決したく思います。

a05kk様

ご回答ありがとうございます!
添付の情報を参考に訂正することで解決いたしました!

0Like

Your answer might help someone💌