Skip to content

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

@tompng

Description

@tompng
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変える)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions