ActiveRecord Callback

Ciao a tutti,
vi pongo un piccolo problema:
sto lavorando con active record in una applicazione non rails.
Riassumendo ho 2 tabelle 1-1,
una relativa al cliente (consumer) e una tabella ‘piatta’ relativa a
dati non definibili a priori come quantità e tipo.

Ogni qualvolta inserisco un nuovo cliente devo inserire un record
nella tabella piatta con consumer_id settato.
Pensavo di utilizzare un callback ma after_save viene invocato sempre
e comunque (creazione e aggiornamento)
mentre after_create viene richiamato quando il record non è ancora
salvato sul db, quindi non ho a disposizione
l’id del cliente.
Devo utilizzare active_record e non eventuali triggers su db per fare
questa cosa perchè l’app è multidatabase (oracle, mysql e mssql)

Posso utilizzare qualcos’altro, idee?
Grazie 1000

Piero


Piero B.
My Blog: cookedapple.net
LinkedIn: http://www.linkedin.com/in/pbozzolo
Linux User #403396

Please consider the environment before you print this email

Ciao Piero,
Se nella tua classe hai la macro ‘has_one’, puoi fare
così:
def after_create
self..create
end

Luca

blog: www.lucaguidi.com
Pro-Netics: www.pro-netics.com
Sourcesense - making sense of Open Source: www.sourcesense.com

mentre after_create viene richiamato quando il record non è ancora
salvato sul db, quindi non ho a disposizione
l’id del cliente.

Non è vero…

$ script/generate model Pippo
$ rake db:migrate

class Pippo < ActiveRecord::Base
def after_create
puts “my id is: #{self.id}”
end
end

$ script/console
Loading development environment.

Pippo.create
my id is: 1
=> #<Pippo:0x1332b50 @new_record=false, @attributes={“id”=>1},
@errors=#<ActiveRecord::Errors:0x1306e74 @base=#<Pippo:0x1332b50 …>,
@errors={}>>

Grazie a tutti e due!
avevo letto/capito male la documentazione dei callbacks, mea culpa!

Grazie!


Piero B.
My Blog: cookedapple.net
LinkedIn: http://www.linkedin.com/in/pbozzolo
Linux User #403396

Please consider the environment before you print this email