1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Rails] CarrierWaveで画像のプレビュー機能の実装方法

Last updated at Posted at 2021-02-27

#前提
RailsでCarrierWaveを使って画像投稿機能が実装されていること。
CarrierWaveの実装方法

#画像ファイルにidを追加する
Javascriptで処理するときに使うので、画像ファイルにidを追加します。

<%= f.label "ユーザー画像" %>
<%= f.file_field :image, id: :user_img %>

#画像を表示させる

画像を表示させるコードを追記します。こちらも、Javascriptで処理するときに使うので、画像ファイルにidをつけておきましょう。
また、画像を選択している時としていない時の表示をif文で分けます。

<% if @user.image.present? %>
  <%= image_tag @user.image, id: :img_prev %>
<% else %>
  <%= image_tag "user_default.png", id: :img_prev %>
<% end %>

#Javascriptに追記する
jsファイルにJavascriptを追記します。
jQueryを使えるようにする

document.addEventListener("turbolinks:load", function() {
  $(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]);
        }
    }
    $("#user_img").change(function(){
        readURL(this);
    });
  });
})

 参考にしたサイト

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?