質問編集履歴

2

追記

2019/02/10 00:08

投稿

Gr.
Gr.

スコア89

test CHANGED
File without changes
test CHANGED
@@ -6,19 +6,149 @@
6
6
 
7
7
 
8
8
 
9
- herokuに、Cloudinaryのアドオンを追加し、
9
+ ### 前提
10
10
 
11
- Cloudinaryの登録せ使えるにし
11
+ Railsで練習用アプリ作成していす。アプリというりホームページ近いかもれませんが。
12
12
 
13
- Railsのconfig以下にダウンロードしたcloudinary.ymlを入れ、
14
13
 
14
+
15
+ 100件の本のデータを入れ、indexで一覧表示、showで各本の詳細を表示します。
16
+
17
+
18
+
19
+ showで詳細に飛んだ時、その本のカバーを画像で表示させようと思います。
20
+
21
+
22
+
23
+ Viewのbooks/newの画面にデータ入力フォームを設け、アプリ上でデータの登録をするとします。
24
+
25
+ 画像アップロードに関しては<%= f.attachment_field :image %>で実装しています。
26
+
27
+
28
+
29
+ books/new.html.erb
30
+
31
+ ```html
32
+
33
+ <%= form_for(@book) do |f| %>
34
+
35
+ <table>
36
+
37
+  <tr>
38
+
39
+   <td><%= f.attachment_field :image %></td>
40
+
41
+  </tr>
42
+
43
+  <tr>
44
+
45
+   <td><%= f.text_field :image_title, placeholder: '画像のタイトル' %></td>
46
+
47
+  </tr>
48
+
49
+  <tr>
50
+
51
+   <td><%= f.text_field :title, placeholder: '本のタイトル' %></td>
52
+
53
+  </tr>
54
+
55
+  <tr>
56
+
57
+   <td><%= f.text_field :year, placeholder: '出版年' %></td>
58
+
59
+  </tr>
60
+
61
+   :
62
+
63
+ ```
64
+
65
+ このようなフォームで本のタイトルや出版年、カバー画像などを登録し、Viewのbooks/showでその本のデータを表示します。
66
+
67
+
68
+
69
+ books/show.html.erb
70
+
71
+ ```html
72
+
73
+ <table>
74
+
75
+  <tr>
76
+
77
+   <td><%= @book.title %></td>
78
+
79
+  </tr>
80
+
81
+  <tr>
82
+
83
+   <td><%= attachment_image_tag @book, :image, :title => @book.image_title %></td>
84
+
85
+  </tr>
86
+
87
+   :
88
+
89
+ ```
90
+
91
+ Bookモデルには以下のように記述し、Booksコントローラのストロングパラメータに:image, :image_titleを入れています。
92
+
93
+
94
+
95
+ book.rb
96
+
97
+ ```model
98
+
99
+ attachment :image
100
+
101
+ ```
102
+
103
+ books_controller.rb
104
+
105
+ ```controller
106
+
107
+ private
108
+
109
+  def book_params
110
+
111
+   params.require(:book).permit(:image, :image_title, ...
112
+
113
+  end
114
+
115
+ end
116
+
117
+ ```
118
+
119
+ 開発環境(ローカル)では、これで問題なく画像が表示されます。
120
+
121
+
122
+
123
+ ### 本題
124
+
125
+ このアプリをherokuにデプロイし、DBが変わったので改めて何件かのデータをbooks/newの画面から入力したところ、初めは何も問題なく表示されたのですが、再度pushしたところ画像のデータだけが消えてしまいました。
126
+
127
+
128
+
129
+ そこで、冒頭でも触れましたが、外部のデータベースを用意してそちらに画像を保存することにしました。
130
+
131
+
132
+
133
+ 以下の手順を踏んで再度フォームから画像を登録したのですが、変化ありません。
134
+
135
+ 画像が結局Cloudinaryに保存されないのですが、あと何をすればいいのでしょうか。
136
+
137
+
138
+
139
+ 0. herokuにCloudinaryのアドオンを追加し
140
+
141
+ 0. Cloudinaryの登録を済ませ使えるようにし
142
+
143
+ 0. Railsのconfig以下にダウンロードしたcloudinary.ymlを入れ
144
+
15
- 通常のadd ~ pushの手順でpushしたのですが、
145
+ 0. 通常のadd ~ pushの手順でpushした
146
+
147
+
16
148
 
17
149
  アプリ上で画像を投稿してもCloudinaryに保存されずやはり消えてしまいます。
18
150
 
19
-
20
-
21
- 何が足りないょうか?
151
+ 経験ある方、詳い方、ぜひご教授願います。
22
152
 
23
153
 
24
154
 
@@ -27,11 +157,3 @@
27
157
 
28
158
 
29
159
  を入れる、と書いている人もいたのですが、入れてbundle installしたら、そんなgemは無いとエラーが返ります。
30
-
31
-
32
-
33
- ファイルアップロードはcarrierwaveの後継とされるrefileを使用しています。
34
-
35
-
36
-
37
- 経験のある方、ご教授願います。

1

追記

2019/02/10 00:08

投稿

Gr.
Gr.

スコア89

test CHANGED
File without changes
test CHANGED
@@ -30,4 +30,8 @@
30
30
 
31
31
 
32
32
 
33
+ ファイルアップロードはcarrierwaveの後継とされるrefileを使用しています。
34
+
35
+
36
+
33
37
  経験のある方、ご教授願います。