Rails необязательная проверка неоднозначности - PullRequest
0 голосов
/ 19 ноября 2018

Я обнаружил, что эта проверка все еще работает

validates :name, presence: true, if: (spa) -> { spa.name_required && other_name.blank? }

Это лямбда с аргументом, но аргумент не используется для other_name проверки

Я обнаружил, что когда я убрал аргумент лямбды, он все еще работает

validates :name, presence: true, if: -> { name_required && other_name.blank? }

В документации сказано, что мы должны создавать процы, см. https://guides.rubyonrails.org/active_record_validations.html#using-a-symbol-with-if-and-unless

Я думаю, что это работает, потому что лямбда - это замыкание внутри объекта, который он определил, поэтому методы объекта доступны.

Вопрос в том, почему в документации Active Record говорится, что используется proc с аргументом? Является ли использование лямбда как это неправильно каким-то образом?

...