Relacion 1 a 1

Hola a todos por aqui y nuevamente con una duda…
Explico un poco:
Tengo un problema con una relacion 1-1 en el siguiente caso, tengo 2
tablas Users - curriculums la relacion debe indicar que cada usuario
puede tener un solo curriculum.

Estoy utilizando rest_athentication para registro y validacion de
usuarios

Aqui se indica la relacion:

El archivo user.rb

class User < ActiveRecord::Base
has_one :curriculum

end

el en archivo curriculum.rb

class Curriculum < ActiveRecord::Base
belongs_to :user
end

la tabla curriculum tiene los campos
id, :integer
user_id, :integer
rol, :integer
nombre, :string
telefono, :string

y debo recibir el valor de current_user en usuario_id

para esto en el metodo create de curriculum.controller.rb hice lo
siguiente

respond_to do |format|
if @curriculum.save
current_user.curriculum << @curriculum
flash[:notice] = ‘Curriculum was successfully created.’

current_user.curriculum <<@curriculum esto es aprovechando la relacion
entre users y curriculums pero y obtengo el siguiente error:

You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.<<

ahora si cambio la relacion por ejemplo a:

lass User < ActiveRecord::Base
has_many :curriculums

end

y hago esto en el controlador

respond_to do |format|
if @curriculum.save
current_user.curriculum << @curriculum
flash[:notice] = ‘Curriculum was successfully created.’

esto: current_user.curriculum << @curriculum

se almacena perfectamente el current_use en el campo user_id

He revisado algunos sitios y no encuentro si en una relacion 1-1 se deba
hacer alguna tabla extra como en las relaciones n-n o no…

Alguna sugerencia

Gracias por sus respuestas

En lugar de:

current_user.curriculum <<@curriculum

pon:

current_user.curriculum = @curriculum

Salu2,

Javi

El 29/08/07, Faustino V. [email protected]
escribió:> Hola a todos por aqui y nuevamente con una duda…

Gracias Javier por tu respuesta funciono ATM

Una pregunta que diferencia hay entre = <<

El 30/08/07, Faustino V. <[email protected]…>
escribió:> Gracias Javier por tu respuesta funciono ATM

Una pregunta que diferencia hay entre = <<

Con = asignas. << se usa normalmente con arrays para añadir un
elemento. Por ejemplo en un has_many :algos sería:

@objeto.algos << algo_a_añadir

Un saludo,

Serabe

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs