2012-01-15 10 views
5

Solo me pregunto si hay una forma de hacer una devolución de llamada condicional en Rails. Sé que usted puede hacer una validación condicional de este modo:Devolución de llamada condicional en el modelo de Rails?

validates_uniqueness_of :email, :if => (1==1) 

hago a menudo este tipo de cosas en mis devoluciones de llamada:

class LineItem < ActiveRecord::Base 
    belongs_to :invoice 
    belongs_to :line_item_group 

    before_create :set_invoice_id 
    def set_invoice_id 
    unless self.invoice_id 
     self.invoice_id = self.line_item_group.invoice_id 
    end 
    end 
end 

Sería muy bueno para limpiar eso un poco.

Respuesta

10
class LineItem < ActiveRecord::Base 
    before_create :set_invoice_id, :unless => :invoice_id 

    def set_invoice_id 
    self.invoice_id = line_item_group.invoice_id 
    end 
end 
+0

Tienes razón, no es SQL ortodoxa, y me gusta de esa manera. :) Estoy dispuesto a sacrificar la normalidad por menos combinaciones. – tybro0103

Cuestiones relacionadas