ar_sync icon indicating copy to clipboard operation
ar_sync copied to clipboard

sync_has_oneがuser specificな場合に変な挙動することがある

Open tompng opened this issue 5 years ago • 0 comments

sync_has_one :myFoo do |user|; end
sync_has_one :myFoo, preload: ->|a, user|; end

の場合、userにnilが渡されて評価してしまう その時に値を返してしまうとおかしな挙動になる

sync_has_one :myFoo do |user|
  foos.find_by(user: user) # user_idがnullableかつ別の意味を持つ場合まずい
end

値を返さなかったとしても問題がありそうなのでarityを見て評価しないようにする(arityだけで判別不能だったらapi変える)

tompng avatar Nov 27 '20 10:11 tompng