質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

2107閲覧

Rails 更新した時だけ画像がアップロードされない

退会済みユーザー

退会済みユーザー

総合スコア0

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1グッド

1クリップ

投稿2017/02/21 02:50

編集2017/02/21 04:43

###前提・実現したいこと
Ruby on Railsでアプリを作っています。
画像を登録できるモデルがあるのですが、一度画像を削除して何もない状態からだと正常に画像を登録できるのですが、
一度画像が登録されている状態で、他の画像に変更しようと更新すると、その画像が消えてしまい、なおかつ新しく
登録したい画像もアップロードされていない状態になります。
いままで幾つかアプリを同様の手順で作成していてこのような状況になったことがなく、以前作成したアプリと何か設定が違うのだと思うのですが、いろいろと設定まわりを見てみたのですが全く治らず困っております。
もしこのあたりが怪しい、など分かりそうな方がいらっしゃいましたら教えていただけますでしょうか。
情報の不足などもあれば追記しますので教えてください。よろしくお願いいたします。

###発生している問題・エラーメッセージ
エラーメッセージ等は特に発生しておりません。

###該当のソースコード
コントローラー

rb

1class BadgesController < ApplicationController 2 def create 3 @badge = Badge.new(badge_params) 4 if @badge.save 5 flash[:success] = "新しいバッジを登録しました!" 6 redirect_to home_path 7 else 8 render controller: 'badges', action: 'new' 9 end 10 end 11 12 def update 13 @badge = Badge.find(params[:id]) 14 15 if @badge.update(badge_params) 16 # 保存に成功した場合はトップページへリダイレクト 17 flash[:success] = "バッジを編集しました。" 18 redirect_to home_path 19 else 20 # 保存に失敗した場合は編集画面へ戻す 21 render controller: 'badges', action: 'edit' 22 end 23 end 24 25 private 26 def badge_params 27 params.require(:badge) 28 .permit(:name, :image, :remove_image, :image_cache) 29 end 30end

DB定義

create_table :badges do |t| t.string :name t.string :image t.boolean :remove_image t.string :image_cache t.timestamps end

uploader.rb

rb

1# encoding: utf-8 2 3class ImageUploader < CarrierWave::Uploader::Base 4 include CarrierWave::MiniMagick 5 6 if Rails.env.production? 7 include Cloudinary::CarrierWave 8 else 9 storage :file 10 end 11 12 def public_id 13 model.id 14 end 15 16 def store_dir 17 "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 18 end 19 20 process :resize_to_fit => [250, 250] 21 22 def extension_white_list 23 %w(jpg jpeg gif png) 24 end 25 26end 27

###試したこと
開発環境(Cloud9)上で実行すると(Cloudinaryを使用していないからか)正常に画像更新もできます。
Mini Magickが良くないのかと、Mini Magickを一度削除して更新しても、状況は変わらずでした。
Rails4.2.5で作り直してもこれも状況が変わらずでした。
Herokuのアプリを作り直して、Cloudinaryを新しくアドオンで追加し、CLOUDINARY_NAMEやCLOUDINARY_API_KEY等を
改めてHerokuに登録し直してもなおりませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
Ruby on Rails5.0.0.1
Heroku
Cloudinary + CarrierWave + Mini Magickで画像を登録しています。

satail👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問