rails_admin , carrierwaveを使用して、画像表示をさせたい。
Q&A
Closed
解決したいこと
rails_admin , carrierwave を使用した時、
画像表示をさせたい。
rails初学者です。
画像を表示させたいのですが、つまづいてしまいました。。。
宜しくお願い致します。
①「mount_uploaders」画像は表示されないが、rails_adminは正常に動く。
artwork.rb
mount_uploaders :images, ImageUploader
②「mount_uploader」画像は表示されるが、rails_adminにエラーが発生する。
artwork.rb
mount_uploader :images, ImageUploader
②のときの、エラーメッセージ
TypeError in RailsAdmin::MainController#new
no implicit conversion of nil into String
その他コード
artwork.rb
class Artwork < ApplicationRecord
mount_uploaders :images, ImageUploader
serialoze :images, JSON
end
artwork.controller.rb
def artwork_params
params.require(:artwork).permit(:title, :content, :price, :image, images:[] )
end
image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
index.html.erb
<div class="artwork_index">
<div class="row row-cols-1 row-cols-md-3 g-4">
<% @artworks.each do |artwork| %>
<div class="col">
<div class="card">
<div class="card-body">
<%= link_to artwork do %>
<% if artwork.images? %>
<img src="<%= artwork.images %>" class="index_image" >
<% else %>
<%= image_tag '/assets/noimage.png', class:"index_image", height:'100' %>
<% end %>
<% end %>
</div>
</div>
</div>
<% end %>
</div>
</div>
0