Я обнаружил, что эта проверка все еще работает
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 с аргументом? Является ли использование лямбда как это неправильно каким-то образом?