cómo agregar una columna única a la tabla en rieles

tengo mesa Y he hecho una migración y me he fijado allí add_column :articles, :hash_code, :string, :unique => true, bollo no funciona.

¿Puedes darme alguna ayuda?

preguntado el 09 de marzo de 13 a las 14:03

2 Respuestas

Según la guía

El método Active Record afirma que la inteligencia pertenece a sus modelos, no a la base de datos. Como tal, las características como los desencadenadores o las restricciones de clave externa, que empujan parte de esa inteligencia de regreso a la base de datos, no se utilizan mucho.

Las validaciones como valida :foreign_key, :uniqueness => true son una forma en que los modelos pueden imponer la integridad de los datos. La opción :dependiente en las asociaciones permite que los modelos destruyan automáticamente los objetos secundarios cuando se destruye el principal.

Entonces, todo lo que necesita hacer es validar la unicidad del atributo en su modelo y ¡eso es todo! Y si también desea agregar el índice, puede agregarlo en el archivo de migración.

Respondido el 20 de junio de 20 a las 10:06

:unique => true pertenece a la declaración add_index en lugar de la declaración add_column.

La sintaxis de add_index se muestra a continuación:

add_index :table_name, :column_name, :unique => true

respondido 09 mar '13, 14:03

debe estar en mi modelo algo como esto validates_uniqueness_of :hash_code ? - Andrii

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.