Зачем использовать Proc.new для вызова метода в обратном вызове Rails?

во всех обучающих материалах для RoR Я вижу случаи, когда кодировщик выбирал использование Proc.new, хотя это казалось и ненужным, и довольно непривлекательным.

Пример , вот обратный вызов для размещения в модели: один использует Proc.new, другой, предположительно, делает то же самое:

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

Так в чем разница? Зачем использовать Proc? Разве они оба не называют «оплаченную_с_картой»? метод?

Заранее благодарим

13
задан Andrew Grimm 5 October 2011 в 23:15
поделиться