ruby初学者です。
railsで出前注文アプリを作成し、各商品に画像を設定。herokuにアップロードしました。
しかしherokuでは一定時間の経過で画像が消えてしまうことを知り、AWSのS3を使いロゴやトップ画像は表示できています。
各商品画像をpublicフォルダではなくS3で管理(保存)、ブラウザ表示させたいです。
そもそも可能なのでしょうか。
根本を理解できていない気もして、また同様の参考サイトを見つけられず質問させていただきました。
商品画像に関するコードは、Progateで習った通りの下記の手順を踏みました。
画像のカラム名は、product_imageとしました。
1)createアクション
@menu = Menu.new(product_image: "default.jpg")
2)indexアクション
@menus = Menu.all.order(category: :asc)
3)indexアクション(ビュー)
<% @menus.each do |menu| %>
<img src="<%= "/product_images/#{menu.product_image}" %>" alt="">
4)showアクション
@menu = Menu.find_by(id: params[:id])
5)showアクション(ビュー)
<%= @menu.product_image %>
6)editアクション
@menu = Menu.find_by(id: params[:id])
7)editアクション(ビュー)
<%= form_tag("/menus/#{@menu.id}/update", {multipart: true}) do %>
<input type="file" name="product_image" value="<%= @menu.product_image %>">
8)updateアクション
@menu = Menu.find_by(id: params[:id])
@menu.product_image = "#{@menu.id}.jpg"
product_image = params[:product_image]
File.binwrite("public/product_images/#{@menu.product_image}", product_image.read)
稚拙な文章で大変恐縮ですが、
どなたかお教えいただければ大変ありがたいです。
宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー