質問編集履歴
2
edit.html.erbを変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -23,6 +23,10 @@
|
|
23
23
|
def edit
|
24
24
|
|
25
25
|
@recipe = Recipe.find_by(id: params[:id])
|
26
|
+
|
27
|
+
@material = Material.where(user_id: @recipe.user_id, recipe_id: @recipe.id)
|
28
|
+
|
29
|
+
@cookmethod = Cookmethod.where(user_id: @recipe.user_id, recipe_id: @recipe.id)
|
26
30
|
|
27
31
|
end
|
28
32
|
|
1
コード追加、タイトル変更、確認したこと追加
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
更新後、画像が保存されなくて困っています
|
test
CHANGED
@@ -4,17 +4,21 @@
|
|
4
4
|
|
5
5
|
##実現したいこと
|
6
6
|
|
7
|
-
|
7
|
+
更新しても画像が保存できるようにしたいです。
|
8
8
|
|
9
9
|
|
10
10
|
|
11
11
|
#状況
|
12
12
|
|
13
|
+
更新後画像が保存されないです。
|
14
|
+
|
13
|
-
|
15
|
+
mysqlはNullとなっています。
|
14
16
|
|
15
17
|
|
16
18
|
|
17
19
|
```Ruby
|
20
|
+
|
21
|
+
recipes_controller.rb
|
18
22
|
|
19
23
|
def edit
|
20
24
|
|
@@ -28,7 +32,77 @@
|
|
28
32
|
|
29
33
|
```Ruby
|
30
34
|
|
35
|
+
def update
|
36
|
+
|
37
|
+
@recipe = Recipe.find_by(id: params[:id])
|
38
|
+
|
39
|
+
@update_user_id = @recipe.user_id
|
40
|
+
|
41
|
+
@material = Material.where(user_id: @update_user_id, recipe_id: params[:id])
|
42
|
+
|
43
|
+
@cookmethod = Cookmethod.where(user_id: @update_user_id, recipe_id: params[:id])
|
44
|
+
|
45
|
+
@recipe_cnt = 0
|
46
|
+
|
47
|
+
@recipe.update(image: recipe_params[:image])
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
if @recipe.update_attributes(title: recipe_params[:title],image: recipe_params[:image], point: recipe_params[:point], impression: recipe_params[:impression])
|
52
|
+
|
53
|
+
@recipe_cnt += 1
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
```Ruby
|
64
|
+
|
65
|
+
image_uploader.rb
|
66
|
+
|
67
|
+
class ImageUploader < CarrierWave::Uploader::Base
|
68
|
+
|
69
|
+
# Include RMagick or MiniMagick support:
|
70
|
+
|
71
|
+
# include CarrierWave::RMagick
|
72
|
+
|
73
|
+
# include CarrierWave::MiniMagick
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
# Choose what kind of storage to use for this uploader:
|
78
|
+
|
79
|
+
storage :file
|
80
|
+
|
81
|
+
# storage :fog
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
# Override the directory where uploaded files will be stored.
|
86
|
+
|
87
|
+
# This is a sensible default for uploaders that are meant to be mounted:
|
88
|
+
|
89
|
+
def store_dir
|
90
|
+
|
91
|
+
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
```
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
```Ruby
|
100
|
+
|
101
|
+
recipe.rb
|
102
|
+
|
103
|
+
|
104
|
+
|
31
|
-
|
105
|
+
mount_uploader :image, ImageUploader
|
32
106
|
|
33
107
|
validation :image, presence: true
|
34
108
|
|
@@ -37,6 +111,8 @@
|
|
37
111
|
|
38
112
|
|
39
113
|
```HTML
|
114
|
+
|
115
|
+
edit.html.erb
|
40
116
|
|
41
117
|
<%= form_for @recipe do |f| %>
|
42
118
|
|
@@ -62,6 +138,22 @@
|
|
62
138
|
|
63
139
|
|
64
140
|
|
141
|
+
#確認したこと
|
142
|
+
|
143
|
+
uploadフォルダには画像は存在していますが、
|
144
|
+
|
145
|
+
更新後、mysqlはNullとなっています。
|
146
|
+
|
147
|
+
edit.html.erbには画像のURLは存在しています。
|
148
|
+
|
149
|
+
updateで更新後、pryで止めましたが、Nullになっています。
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
![更新後のログ](513c60a2d95eaa6a5879b18d0829142e.png)
|
154
|
+
|
155
|
+
|
156
|
+
|
65
157
|
##version
|
66
158
|
|
67
159
|
Rails 5.2.4.1
|