Commit d7cd43a
committed
rewrite for clarity and AR 5.1 compat
In AR 5.1 find_or_create_by and new_record_before_save? interact differently, to break the original code. (I think maybe it was relying on a bug in new_record_before_save?, I don't really understand what new_record_before_save? is).
I believe this is the same logic, rewritten more clearly and in a way that will work in Rails 5.1.
Note that find_or_create_by is NOT atomic, in any Rails version. So we should not have introduced any race condition that wasn't there already, we're still creating by soon after find if not present, just a slight intervening check for token.last == 0, shoudn't be much racier than before.1 parent 16cafe1 commit d7cd43a
1 file changed
Lines changed: 8 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
101 | 101 | | |
102 | 102 | | |
103 | | - | |
104 | 103 | | |
105 | 104 | | |
106 | 105 | | |
| |||
0 commit comments