###知りたいこと
一つもモデル内に、複数の写真をS3へ保存したいです
以下のようにメイン写真は、post_idですが、subphotoを増やしました。
Uploaderでは、メイン写真を一枚保存する設定になっていますが、createアクションで、複数の写真を保存するのはどのようにすれば良いでしょうか?
sheema
1create_table "posts", force: :cascade do |t| 2 t.string "title" 3 t.text "text" 4 t.integer "image_name" 5 t.integer "subphoto1" 6 t.integer "subphoto2" 7 t.integer "subphoto3" 8end
class PostimageUploader < CarrierWave::Uploader::Base include CarrierWave::RMagick if Rails.env.development? storage :file elsif Rails.env.test? storage :file else storage :fog end def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end process resize_to_limit: [800, 800] def extension_whitelist %w(jpg jpeg gif png) end def filename "#{secure_token}.#{file.extension}" if original_filename.present? end protected def secure_token var = :"@#{mounted_as}_secure_token" model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.uuid) end end
controller
1def create 2 @post = Post.new( 3 title: params[:title], 4 text: params[:text], 5 image_name: params[:image], 6 subphoto1: params[:subphoto1], 7 subphoto2: params[:subphoto2], 8 subphoto3: params[:subphoto3],) 9 if @post.save 10 redirect_to("/posts/#{@post.id}") 11 else 12 render("posts/new") 13 end 14 end
やり方は人それぞれあるので、エラーメッセージを載せて欲しいです
あとはストレージはs3とのことなので、
関連の設定ファイルも載せた方がいいと思います
画像のパスを保存するスキーマの型はstringかなと思います
あなたの回答
tips
プレビュー