en todos los tutoriales para RoR Veo ejemplos en los que el codificador optó por usar Proc.new cuando aparentemente es innecesario y poco atractivo.¿Por qué usar Proc.new para llamar a un método en una devolución de llamada de Rails?
ejemplo, aquí hay una llamada de retorno para colocar en un modelo, una usando Proc.new la otra, presumiblemente, haciendo lo mismo:
class Order < ActiveRecord::Base
before_save :normalize_card_number,
:if => Proc.new { |order| order.paid_with_card? }
end
class Order < ActiveRecord::Base
before_save :normalize_card_number, :if => "paid_with_card?"
end
Entonces, ¿cuál es la diferencia? ¿Por qué usar el Proc? ¿No llaman ambos a la "paid_with_card?" ¿método?
Gracias de antemano
Sí, es posible que prefiera no utilizar modelos de carriles con métodos como paid_with_card? – sunkencity
Creo que: si algo sugiere que hay una gran cantidad de opciones de configuración que se incluyen automáticamente y se reutilizan desde otro contexto. Hay una manera predeterminada de manejar: if => string, proc, etc. para configurar opciones como esa y probablemente: a menos que también funcione. – sunkencity