Domanda

Questo codice produce un ActiveRecordError :

  

richiamate devono essere un simbolo che denota   il metodo da chiamare, una stringa di essere   valutato, un blocco da invocato, o   un oggetto risposta al callback   metodo ".

before_update :check_instock, :unless => Proc.new { |inventory| inventory.needed.nil? } 

def check_instock
  if needed < amount
    instock = true
  else
    instock = false
  end
end

Questo codice viene inserito nel mio modello di inventario, sto cercando di gestire una logica prima di chiamare @ inventory.update_attributes (controllore). In precedenza mi stava chiamando @ inventory.update_attributes più volte, che ha portato nel codice che lavorato , anche se non in modo succinto.

Cheers!

È stato utile?

Soluzione

before_update :set_instock, :unless => :inventory_not_needed?

private

def set_instock
  self.instock = (needed < amount) ? true : false
end

def inventory_not_needed?
  needed.nil?
end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top