2016-11-14 2 views
0

Ich habe eine after_save Rückruf auf Scorecard Klasse.Übergeben Sie einen Hash zu ActiveRecord # Speichern

In diesem Rückruf erstellen und speichern ich ein Objekt in einem anderen Modell BalanceLedger.

Ich brauche eine Nachricht an dieses Objekt zu übergeben in der after_save von Scorecard

erstellt wird Ist das möglich?

z.B. (Wo dies nicht gültig, aber versuch, meinen Punkt zu bekommen)

scorecard.total = new_total 
scorecard.save(message: 'This is an Admin correction') 

class Scorecard < ActiveRecord::Base 

    after_save do 
    BalanceLedger.create!(total: total, message: params[:message]) 
    end 

Antwort

1

Vielleicht :attr_accessor verwenden, um ein virtuelles Attribut festlegen? Sie könnten einen message Wert festlegen und ihn innerhalb des Rückrufs abrufen.

scorecard.total = new_total 
scorecard.message = 'This is an Admin correction' 
scorecard.save 

class Scorecard < ActiveRecord::Base  
    attr_accessor :message 

    after_save do 
    BalanceLedger.create!(total: total, message: message) 
    end 
end 
+0

Ich mag diesen Gedanken. Lass mich das untersuchen. – slindsey3000

Verwandte Themen