Fondamentalmente quello che voglio fare è registrare un'azione su MyModel nella tabella di MyModelLog. Ecco alcuni pseudo codice:Come salvare qualcosa nel database dopo le convalide di ActiveRecord fallite?
class MyModel < ActiveRecord::Base
validate :something
def something
# test
errors.add(:data, "bug!!")
end
end
ho anche un modello simile a questo:
class MyModelLog < ActiveRecord::Base
def self.log_something
self.create(:log => "something happened")
end
end
Per accedere Ho cercato di:
Aggiungere
MyModelLog.log_something
nel metodo disomething
MyModel
Chiama
MyModelLog.log_something
sullaafter_validation
callback diMyModel
In entrambi i casi la creazione è rotolato indietro quando la convalida non riesce, perché è nella transazione convalida. Naturalmente voglio anche loggare quando falliscono le validazioni. Non voglio veramente accedere a un file o da qualche altra parte rispetto al database perché ho bisogno delle relazioni delle voci di registro con altri modelli e della capacità di fare richieste.
Quali sono le mie opzioni?
Simile tipo di domanda: http://stackoverflow.com/questions/3685912/how-do-i-exclude-a-model-from-a-transaction-in-activerecord/3686035#3686035 – Shadwell