###前提・実現したいこと
画像をデータベースに保存する場合の更新方法を教えてください。
・画像はcreate時にバイナリデータでデータベースに保存します。
・更新はeditメソッドとupdateメソッドを使用します。
###発生している問題・エラーメッセージ
update時に大量のメッセージが表示されます。
以下の分は先頭のエラー内容です。
Could not log "sql.active_record" event. NoMethodError: undefined method `bytesize' for #<ActionDispatch::Http::UploadedFile:0x007f33e269f3a8> ["/usr/local/rvm…
###該当のソースコード
def edit @user = User.find(params[:id]) end def update name = user_params[:name] region = user_params[:region] profile = user_params[:profile] upload_image1 = user_params[:image1] upload_image2 = user_params[:image2] upload_image3 = user_params[:image3] upload_image4 = user_params[:image4] upload_image5 = user_params[:image5] upload_evo = user_params[:evolution] user = {} if upload_image1 != nil user[:image1] = upload_image1.read end if upload_image2 != nil user[:image2] = upload_image2.read end if upload_image3 != nil user[:image3] = upload_image3.read end if upload_image4 != nil user[:image4] = upload_image4.read end if upload_image5 != nil user[:image5] = upload_image5.read end if upload_evo != nil user[:evolution] = upload_evo.read end user[:name] = name user[:region] = region user[:profile] = profile ★★★ @user = User.find(params[:id]) @user[:image1] = upload_image1.read @user.update(user_params) ★★★ redirect_to pages_manage_path end
今回は試験的にimage1だけを実装しようとしています。
上のコードはあまり気にしないでください。。。
また★で囲まれている箇所を以下のようにすると更新ではなく新たにデータが追加されてしまいます。
@user = User.new(user) @user.update(user)
ご経験ある方、ご指摘お願いします!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/25 06:37 編集
2017/04/25 06:53 編集
2017/04/25 07:03
2017/04/25 09:14 編集
2017/04/25 13:31
2017/04/25 13:53
2017/04/25 14:22
2017/04/27 03:18