Я обнаружил, что во всех примерах (включая документацию по rails), которые я видел для опции if if методов проверки, используется Proc.new вместо lambda, например
class Foo < ActiveRecord::Base
validates_presence_of :name, :if => Proc.new{|f| .... } # why not lambda here?
end
Есть ли причина для этого? Насколько я знаю, лямбда
- Более строгие с аргументами.
- Также оператор return в блоке лямбда возвращается из блока, а не из вызывающей функции.
Оба кажутся желательным поведением для: если вариант, упомянутый выше, есть что-то, что я не вижу?