質問編集履歴
4
ディレクトリ構造を追加しました
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -19,7 +19,18 @@
|
|
|
19
19
|
`config/cloudinary.yml`の環境変数は隠したい
|
|
20
20
|
|
|
21
21
|
ので`.env`ファイルを利用する方法で考えたいと思います。
|
|
22
|
-
お手数ですがよろしくお願いします
|
|
22
|
+
お手数ですがよろしくお願いします(m_ _m)
|
|
23
|
+
ちなみにディレクトリ構成は下記のとおりです。
|
|
24
|
+
```
|
|
25
|
+
app_name
|
|
26
|
+
├─app
|
|
27
|
+
│ └uploaders
|
|
28
|
+
│ └articleimage_uploader.rb
|
|
29
|
+
├─config
|
|
30
|
+
│ └application.rb
|
|
31
|
+
│ └cloudinary.yml
|
|
32
|
+
└─.env
|
|
33
|
+
```
|
|
23
34
|
|
|
24
35
|
### エラー画面
|
|
25
36
|

|
3
参考サイトを追加しました
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
現在cloudinaryを利用して画像アップロードをしようとしていますが
|
|
1
|
+
現在ローカル環境でcloudinaryを利用して画像アップロードをしようとしていますが
|
|
2
2
|
```
|
|
3
3
|
Cloudinary::CarrierWave::UploadError at /managers/articles
|
|
4
4
|
Invalid api_key ENV['CLOUDINARY_API_KEY']
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
(gem 'dotenv-rails' をつかっています)
|
|
38
38
|
|
|
39
39
|
###参考サイト
|
|
40
|
-
|
|
40
|
+
- [Rails + cloudinary + carrier wave 画像アップロードアプリのテスト](https://qiita.com/ntkgcj/items/6ca19c9decf929714970)
|
|
41
|
+
- [API key等をgithubで公開しない方法(rails,heroku)](https://qiita.com/uma0317/items/e142661c004f68d858a5)
|
|
41
42
|
###該当のソースコード
|
|
42
43
|
config/application.rb
|
|
43
44
|
```ruby
|
2
タイトルを変更しました
title
CHANGED
|
@@ -1,1 +1,1 @@
|
|
|
1
|
-
環境設定ファイルを読み込んでくれない
|
|
1
|
+
config/cloudinary.ymlファイルが環境設定ファイルを読み込んでくれない
|
body
CHANGED
|
File without changes
|
1
タイトルを変更、ほか追記があります(エラーの原因の特定)。
title
CHANGED
|
@@ -1,1 +1,1 @@
|
|
|
1
|
-
|
|
1
|
+
環境設定ファイルを読み込んでくれない
|
body
CHANGED
|
@@ -1,27 +1,43 @@
|
|
|
1
1
|
現在cloudinaryを利用して画像アップロードをしようとしていますが
|
|
2
2
|
```
|
|
3
|
-
|
|
3
|
+
Cloudinary::CarrierWave::UploadError at /managers/articles
|
|
4
|
-
|
|
4
|
+
Invalid api_key ENV['CLOUDINARY_API_KEY']
|
|
5
|
+
|
|
5
6
|
```
|
|
6
7
|
というエラーがでてアップロードできません(m_ _m)
|
|
8
|
+
環境変数を定義するときは`gem 'dotenv-rails'` をつかっています
|
|
7
9
|
わかる方がいらっしゃれば教えていただきますようよろしくお願いいたします(m_ _m)
|
|
10
|
+
|
|
11
|
+
###※追記(2018/10/21)
|
|
12
|
+
環境変数をベタ書きでするとアップロードができました。
|
|
13
|
+
|
|
14
|
+
`config/cloudinary.yml`でなぜか`.env`ファイルから環境変数が読み込めていないこと
|
|
15
|
+
|
|
16
|
+
が原因のような気がします。
|
|
17
|
+
ベタ書きしてもいいのですがgithubにあげることなどを考えると
|
|
18
|
+
|
|
19
|
+
`config/cloudinary.yml`の環境変数は隠したい
|
|
20
|
+
|
|
21
|
+
ので`.env`ファイルを利用する方法で考えたいと思います。
|
|
22
|
+
お手数ですがよろしくお願いします。
|
|
23
|
+
|
|
8
24
|
### エラー画面
|
|
9
|
-

|
|
10
26
|

|
|
11
27
|

|
|
12
28
|
|
|
29
|
+
|
|
30
|
+
|
|
13
31
|
###期待する動作
|
|
14
32
|
development環境からでもcloudinaryにアップロードできるようにしたい
|
|
15
33
|
###動作環境
|
|
16
34
|
OS:mac
|
|
17
35
|
Ruby:2.3.5
|
|
18
|
-
Ruby on Rails: 4.2.
|
|
36
|
+
Ruby on Rails: 4.2.5
|
|
19
|
-
MySQL: 5.7.18
|
|
20
37
|
(gem 'dotenv-rails' をつかっています)
|
|
21
38
|
|
|
22
39
|
###参考サイト
|
|
23
|
-
|
|
40
|
+
|
|
24
|
-
[Cloudinary + Carrierwave + Heroku + Railsでの画像を手軽に利用する方法](https://qiita.com/GenTamura84/items/38cf899827bba050a21c)
|
|
25
41
|
###該当のソースコード
|
|
26
42
|
config/application.rb
|
|
27
43
|
```ruby
|
|
@@ -45,22 +61,20 @@
|
|
|
45
61
|
enhance_image_tag: true
|
|
46
62
|
static_image_support: false
|
|
47
63
|
```
|
|
64
|
+
./.env
|
|
65
|
+
```ruby
|
|
66
|
+
# cloudinary
|
|
67
|
+
CLOUDINARY_NAME=自分のclouldinary_name
|
|
68
|
+
CLOUDINARY_API_KEY = '自分のcloudinary_api_key'
|
|
69
|
+
CLOUDINARY_API_SECRET=自分のcloudinary_api_secret
|
|
48
70
|
|
|
71
|
+
```
|
|
72
|
+
|
|
49
73
|
app/uploaders/articleimage_uploader.rb
|
|
50
74
|
```ruby
|
|
51
75
|
class ArticleimageUploader < CarrierWave::Uploader::Base
|
|
52
76
|
|
|
53
|
-
# Choose what kind of storage to use for this uploader:
|
|
54
|
-
# if Rails.env.production?
|
|
55
|
-
|
|
77
|
+
include Cloudinary::CarrierWave
|
|
56
|
-
# else
|
|
57
|
-
# include CarrierWave::RMagick
|
|
58
|
-
# storage :file
|
|
59
|
-
# end
|
|
60
|
-
|
|
61
|
-
def store_dir
|
|
62
|
-
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
|
63
|
-
end
|
|
64
78
|
version :standard do
|
|
65
79
|
process :resize_to_fill => [400, 400, :center]
|
|
66
80
|
end
|
|
@@ -70,58 +84,4 @@
|
|
|
70
84
|
end
|
|
71
85
|
end
|
|
72
86
|
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
リレーション
|
|
76
|
-
```ruby
|
|
77
|
-
#app/model/article.rb
|
|
78
|
-
# image_uploader(cloudinary)
|
|
79
|
-
attr_accessor :picture
|
|
80
|
-
mount_uploader :picture, ArticleimageUploader
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
app/controllers/article_controller.rb
|
|
85
|
-
```ruby
|
|
86
|
-
class ArticlesController < Managers::ManagersBase
|
|
87
|
-
def create
|
|
88
|
-
@article = Article.create(article_params)
|
|
89
|
-
if @article.save
|
|
90
|
-
redirect_to managers_articles_path
|
|
91
|
-
else
|
|
92
|
-
render 'new'
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def article_params
|
|
97
|
-
params.require(:article).permit(:title, :picture,)
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
app/views/articles/new.html.erb
|
|
103
|
-
```ruby
|
|
104
|
-
<%= form_for @article do |f| %>
|
|
105
|
-
|
|
106
|
-
<div class="field">
|
|
107
|
-
<%= f.label :title %>
|
|
108
|
-
<%= f.text_field :title %>
|
|
109
|
-
</div>
|
|
110
|
-
|
|
111
|
-
<div class="field">
|
|
112
|
-
<%= f.label :details %>
|
|
113
|
-
<%= f.text_area :details %>
|
|
114
|
-
</div>
|
|
115
|
-
|
|
116
|
-
<div class="field">
|
|
117
|
-
<%= f.label :picture %><br />
|
|
118
|
-
<%= image_tag(@article.picture.url(:thumbnail), width: 100, height: 100) %>
|
|
119
|
-
<%= f.file_field :picture %>
|
|
120
|
-
</div>
|
|
121
|
-
|
|
122
|
-
<div class="actions">
|
|
123
|
-
<%= f.submit, %>
|
|
124
|
-
</div>
|
|
125
|
-
|
|
126
|
-
<% end %>
|
|
127
87
|
```
|