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