Railsでユーザー画像登録(デフォルト画像設定も含む)
ImageMagick(画像変換ツール)のインストール
ターミナル
$ brew install imagemagick
↓
ImageMagickをRailsから使うためのgem、mini_magickをインストール
gemfile
gem 'mini_magick'
ターミナル
$ bundle install
↓
Active Storageのインストール
ターミナル
$ rails active_storage:install
$ rails db:migrate
↓
assets/images/に default_user.png 追加
↓
Model、Controller、Viewの設定
Model(user.rb):
has_one_attached :image
Controller(users_controller.rb):
def update
current_user.update(update_params)
end
〜〜
private
def update_params
params.require(:user).permit(:image)
end
View(show.html.erb):
<h2>プロフィール画像</h2>
<% if @user.image.attached? %>
# 画像が登録されている場合の処理
<p><%= image_tag(rails_blob_path(@user.image),:size => "50x50") %></p>
<% else %>
# 画像が登録されていない場合の処理
<p><%= image_tag("default_user.png", :size => "50x50") %></p>
<% end %>
View(edit.html.erb):
<h2>プロフィール画像</h2>
<div class="form-group file">
<%= f.file_field :image, placeholder: "画像アップロード" %>
<%= f.submit "送信" %>
</div>
この記事が気に入ったらサポートをしてみませんか?