Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

304
Vistas
Rails crea muchos objetos para la relación has_one

Tengo dos modelos en mi aplicación Rails 5: User e inicio de Login con la siguiente asociación:

 class User < ApplicationRecord belongs_to :login, optional: true end class Login < ApplicationRecord has_one :user end

Pensé que tal asociación evitaría que el inicio de sesión tuviera más de un usuario, pero resulta que en el caso de que Login.last ya tenga un objeto de usuario asociado:

 2.4.5 :108 > Login.last.user => #<User id: 1, type: "Registrant", login_id: 43, first_name: "test", last_name: "test", created_at: "2022-02-11 11:22:25", updated_at: "2022-02-11 11:22:25">

Todavía puede crear un nuevo usuario con el mismo inicio de sesión:

 User.create(first_name: 'test2', last_name: 'test2', login_id: 43 => #<User id: 2, login_id: 43, first_name: "test2", last_name: "test2", created_at: "2022-02-11 12:03:36", updated_at: "2022-02-11 12:03:36">

Pero cuando intente obtener el último usuario de inicio de sesión, obtendrá el primer usuario creado:

 Login.last.user => #<User id: 1, type: "Registrant", login_id: 43, first_name: "test", last_name: "test", created_at: "2022-02-11 11:22:25", updated_at: "2022-02-11 11:22:25">

¿Cómo evitar la creación de un nuevo usuario con un inicio de sesión que ya se ha utilizado una vez?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede usar la validación para decir que un usuario solo puede usar un inicio de sesión. Esto se verá así en el modelo Usuario:

 validates :login_id, uniqueness: true
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda