teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

質問内容の修正

2018/05/06 01:01

投稿

seen
seen

スコア49

title CHANGED
@@ -1,1 +1,1 @@
1
- 【rails 5】herokuでformから画像をアップロードできない cloudinary+carrywave+RMagick(修正版)
1
+ 【rails 5】herokuでformから画像をアップロードできない cloudinary+carrierwave+RMagick(修正版)
body CHANGED
@@ -1,8 +1,20 @@
1
1
  rails+herokuにて本番環境では画像を保存できないということでcloudinaryを使おうとおもっているのですが、formから投稿した画像がcloudinaryに反映、アップロードされません。
2
2
 
3
3
  現状herokuからcloudinaryをセットアップして、静的な目的で/assets/images以下に置いていた画像ファイルは手動でcloudinaryにアップロードしたことによりheroku(本番環境上)に反映されています。
4
+ ただこれはwav上のURLを指定して表示させているだけなので埋め込みリンクみたいなものですよね?
5
+ そうではなくて,ローカルではformから投稿するとrailsのpublicみたいなところに保存されていたところを、cloudinaryに保存したい。 という事なんですが
4
6
  formからアップロードしたものに関しては数分反映されるのですが時間がたつと消えてしまいますし、cloudinaryにもアップロードされていません。
5
7
  ネット上の情報のみでセットアップしまして、おそらくformからcloudinaryに送るまでのコードに不備があると思うのですが正しい書き方がわかりません。
8
+ 参考にしたサイトには
9
+ ・herokuのアカウント画面からcloudinaryをマウント
10
+ ・クレジット払いの情報を登録
11
+ ・ymlファイルの情報をコピーしてconfigフォルダにファイルを作成
12
+ ・cloudinary のgemをインストール
13
+ となっているのですが、
14
+ まず本当にこれだけで行けるのでしょうか。
15
+ モデルやアップローダーには何も記述していません。(後に他サイトを参考に色々記述してみましたが)
16
+ rails + cloudinary の情報は非常に少ないように思えます。 主流はs3なのでしょうか。
17
+ heroku との連携が優れているとの情報からcloudinaryのアカウントと作ってしまったのでとりあえず動かしたいのですが...
6
18
  どなたかご教示いただけますと助かります。 よろしくお願いします。
7
19
  行った作業工程
8
20
  ---

3

リンク切れ修正2

2018/05/06 01:01

投稿

seen
seen

スコア49

title CHANGED
@@ -1,1 +1,1 @@
1
- 【rails 5】herokuでformから画像をアップロードできない cloudinary+carrywave+RMagick
1
+ 【rails 5】herokuでformから画像をアップロードできない cloudinary+carrywave+RMagick(修正版)
body CHANGED
@@ -8,8 +8,6 @@
8
8
  ---
9
9
  herokuからcloudinaryをセットアップ
10
10
  参考にしたサイト
11
- [http://mutipuro.xyz/rails-heroku-gazou/](http://http://mutipuro.xyz/rails-heroku-gazou/)
12
-
13
11
  [http://mutipuro.xyz/rails-heroku-gazou/](http://mutipuro.xyz/rails-heroku-gazou/)
14
12
 
15
13
  これだけでは/assets/images以下の画像が反映されなかったので手動でcloudinaryにアップロード

2

リンク切れ修正

2018/05/06 00:29

投稿

seen
seen

スコア49

title CHANGED
File without changes
body CHANGED
@@ -10,6 +10,8 @@
10
10
  参考にしたサイト
11
11
  [http://mutipuro.xyz/rails-heroku-gazou/](http://http://mutipuro.xyz/rails-heroku-gazou/)
12
12
 
13
+ [http://mutipuro.xyz/rails-heroku-gazou/](http://mutipuro.xyz/rails-heroku-gazou/)
14
+
13
15
  これだけでは/assets/images以下の画像が反映されなかったので手動でcloudinaryにアップロード
14
16
 
15
17
  rails内の画像のパスをcloudinaryに表示されたURLに変更

1

追記1

2018/05/06 00:27

投稿

seen
seen

スコア49

title CHANGED
File without changes
body CHANGED
@@ -40,4 +40,50 @@
40
40
  そもそもローカルでformからアップロードした画像は/assets/images以下に保存されていないと思います。
41
41
 
42
42
  webの情報だけで作業しました。 何か欠落しているところはありますでしょうか?
43
- よろしくお願いします。
43
+ よろしくお願いします。
44
+ 追記1 確認したこと
45
+ ---
46
+ gemリスト
47
+ ```
48
+ $ gem list
49
+ carrierwave (1.2.2)
50
+ cloudinary (1.9.1)
51
+ ```
52
+ モデル
53
+ ```
54
+ class Artist < ApplicationRecord
55
+ mount_uploader :arsha, ImageUploader
56
+ end
57
+ ```
58
+ 投稿フォームのコントローラー
59
+ ```
60
+ class ArtistsController < ApplicationController
61
+ def artist_params
62
+ params.require(:artist).permit(:artist, :arsha, :song)
63
+ end
64
+ ```
65
+
66
+ アップローダー
67
+ ```
68
+ class ImageUploader < CarrierWave::Uploader::Base
69
+ include CarrierWave::RMagick
70
+
71
+ if Rails.env.production?
72
+ include Cloudinary::CarrierWave
73
+ else
74
+ storage :file
75
+ end
76
+ storage :file
77
+ def store_dir
78
+ "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
79
+ end
80
+
81
+ [version_name, "default.png"].compact.join('_'))
82
+
83
+ process :resize_to_limit => [500, 500]
84
+
85
+ def public_id
86
+ return model.id
87
+ end
88
+ end
89
+ ```