質問編集履歴
2
質問内容の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -60,4 +60,41 @@
|
|
60
60
|
if @user.update(user_params)
|
61
61
|
```
|
62
62
|
|
63
|
-
もうわけがわかりません
|
63
|
+
もうわけがわかりません
|
64
|
+
|
65
|
+
|
66
|
+
### 追記
|
67
|
+
|
68
|
+
```
|
69
|
+
class UserImageUploader < ImageUploader
|
70
|
+
# リサイズしたり画像形式を変更するのに必要
|
71
|
+
include CarrierWave::MiniMagick
|
72
|
+
|
73
|
+
process :store_dimensions
|
74
|
+
|
75
|
+
# サイズを半分にしたものを生成してそのサイズを保存する
|
76
|
+
version :half do
|
77
|
+
process :resize
|
78
|
+
end
|
79
|
+
|
80
|
+
def resize
|
81
|
+
Util.log 'resize'
|
82
|
+
resize_to_fit model.resize[0], model.resize[1]
|
83
|
+
end
|
84
|
+
|
85
|
+
def store_dimensions
|
86
|
+
if file && model
|
87
|
+
resize = MiniMagick::Image.open(file.file).dimensions
|
88
|
+
resize[0] = resize[0] / 2
|
89
|
+
resize[1] = resize[1] / 2
|
90
|
+
model.resize = resize
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def url
|
96
|
+
"#{Settings.api.images}#{self.half.current_path}"
|
97
|
+
end
|
98
|
+
```
|
99
|
+
|
100
|
+
このリサイズしたバージョンのイメージを作らなければ2回呼ばれるだけで正常に保存できるようです
|
1
質問内容の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -26,4 +26,38 @@
|
|
26
26
|
|
27
27
|
なぜこういうことがおこるのでしょうか
|
28
28
|
そもそも4回呼ばれる理由もわからないのですが
|
29
|
-
Carrierwave はブラックボックスが多すぎて原因が全くわからずどこからデバッグすればいいのでしょうか…
|
29
|
+
Carrierwave はブラックボックスが多すぎて原因が全くわからずどこからデバッグすればいいのでしょうか…
|
30
|
+
|
31
|
+
|
32
|
+
### 追記
|
33
|
+
|
34
|
+
```
|
35
|
+
def filename
|
36
|
+
Util.log @f
|
37
|
+
if original_filename
|
38
|
+
@f ||= "#{SecureRandom.hex(5)}#{File.extname(original_filename)}"
|
39
|
+
end
|
40
|
+
Util.log @f
|
41
|
+
@f
|
42
|
+
end
|
43
|
+
```
|
44
|
+
|
45
|
+
のようにログを増やしてみたのですが
|
46
|
+
最後の1回だけ @f が nil になってしまいます
|
47
|
+
なので別にインスタンスが作られているとしか思えません…
|
48
|
+
|
49
|
+
```
|
50
|
+
Util.log caller.select{|r| r.index('/home') == 0}.join("\n")
|
51
|
+
```
|
52
|
+
トレースをはさんでみたのですが4回とも同じコントローラーの update から呼び出されていました
|
53
|
+
|
54
|
+
コントローラはほとんど手を付けていないデフォルトです
|
55
|
+
もちろんその update が実行されたのは1回だけです
|
56
|
+
```
|
57
|
+
def update
|
58
|
+
Util.log 'update'
|
59
|
+
respond_to do |format|
|
60
|
+
if @user.update(user_params)
|
61
|
+
```
|
62
|
+
|
63
|
+
もうわけがわかりません
|