回答編集履歴
1
じゃぁ何が悪いのか\?
answer
CHANGED
@@ -39,4 +39,20 @@
|
|
39
39
|
本当に `user.persist? == true` になっているのであれば例外は発生しないはずです。
|
40
40
|
例外が発生したのであれば **first_or_createがあるので①の問題は発生していない** は偽です。
|
41
41
|
|
42
|
-
といった感じで1つづつ潰していってください。
|
42
|
+
といった感じで1つづつ潰していってください。
|
43
|
+
|
44
|
+
----
|
45
|
+
|
46
|
+
じゃぁ何が悪いのか **persist?** が `true` でないという事は **create** に失敗しています。
|
47
|
+
createに失敗する理由はいくつかありますが `create!` にする事で create に失敗した時点で例外が発生するので
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
def self.from_omniauth(auth)
|
51
|
+
where(provider: auth.provider, uid: auth.uid).first_or_create! do |user| ←first_or_createがあるので①の問題は発生していない…?
|
52
|
+
user.provider = auth.provider
|
53
|
+
user.uid = auth.uid
|
54
|
+
end
|
55
|
+
end
|
56
|
+
```
|
57
|
+
|
58
|
+
として例外メッセージを読めばなぜ first_or_create が失敗したのかわかるはずです。
|