[Ror-es] Crear registro de otro model con after_create / callbacks
Damian Janowski
damian.janowski at gmail.com
Mon Nov 6 03:14:20 GMT 2006
No sería algo así?
begin
algo.save!
rescue RecordNotSaved
hago algo...
end
PD: recomendación: usar el método de clase en vez de sobreescribir la instancia:
class Algo < ...
after_create :crear_otro_lindo_registro
protected
def crear_otro_lindo_registro
otro = Otro.new
otro.algo_id = id
end
end
PD2: necesitás que deposito sea una variable de instancia? (léase
@deposito en vez de deposito?) a mí me pasaba lo mismo, la costumbre
de ver el código del scaffold... automáticamente le ponía (y le sigo
poniendo) la @ a todas las variables locales que necesito :P
PD3: algo más lindo: otro.algo = self (sin _id)
On 11/5/06, Fabian Porta <fabianporta at gmail.com> wrote:
> Xavier,
>
> Ahora con @deposito.save! pude ver cual era el error! Lo solucione y
> funciono de lujo!
>
> Segun la API de Rails, el metodo save! hace lo siguiente: "Attempts to save
> the record, but instead of just returning false if it couldn't happen, it
> raises a RecordNotSaved exception"
>
> Alguien tiene algun ejemplo de como manejar ese exception (RecordNotSaved)
> en un Callback?
>
> Muchas gracias!
>
> Fabian
>
>
> On 11/5/06, Xavier Noria <fxn at hashref.com> wrote:
> > On Nov 5, 2006, at 10:48 PM, Fabian Porta wrote:
> >
> > > Tambien probe con Transactions, pero tampoco pude hacerlo
> > > funcionar. Para colmo no tira ningun error, simplemente devuelve
> > > false.
> > >
> > > Aca van los modelos
> > >
> > > class Deposito < ActiveRecord::Base
> > > belongs_to :user, :foreign_key => 'responsable_id'
> > > end
> > >
> > > class User < ActiveRecord::Base
> > > has_many :depositos
> > >
> > > def after_create
> > > # Creo un Deposito para el Usuario Registrado
> > > @deposito = Deposito.new
> > >
> > > @deposito.nombre = self.apellidos + ", " + self.nombres +
> > > " (Deposito Personal)"
> > > @deposito.responsable_id = self.id
> > >
> > > if @deposito.save
> >
> > Se ve algo si cambias @deposito.save por @deposito.save! ?
> >
> > -- fxn
> >
> >
> >
> > _______________________________________________
> > Ror-es mailing list
> > Ror-es at lists.simplelogica.net
> > http://lists.simplelogica.net/mailman/listinfo/ror-es
> >
>
>
>
> --
> Fabian
> _______________________________________________
> Ror-es mailing list
> Ror-es at lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>
>
>
--
Damian Janowski
damian.janowski at gmail.com
More information about the Ror-es
mailing list