create_table :categories_posts, :id => false do |t|
t.column :category_id, :integer, :null => false
t.column :post_id, :integer, :null => false
end
tengo una tabla de unión (como anteriormente) con columnas que hacen referencia a una correspondiente categorías mesa y unas mensajes de mesa. Quería imponer una restricción única en la clave compuesta category_id, post_id en categories_posts join table. Pero Rails no es compatible con esto (creo).En una tabla de combinación, ¿cuál es la mejor solución para la ausencia de una clave compuesta de Rails?
Para evitar la posibilidad de filas duplicadas en mis datos con la misma combinación de category_id y post_id, ¿cuál es la mejor solución para la ausencia de una clave compuesta en Rails?
Mis supuestos aquí:
- El número predeterminado de Auto-columna (id: entero) no haría nada para proteger mis datos en esta situación.
- ActiveScaffold puede proporcionar una solución pero no estoy seguro de si es una exageración incluirlo en mi proyecto simplemente por esta única función , sobre todo si hay una respuesta más elegante.
Gracias. Después de leer varias publicaciones de blog, pensé que no era posible un índice compuesto y que esta sintaxis no existía. –
Esto dará una experiencia de interfaz de usuario pobre si el usuario intenta ingresar un registro duplicado. –
@Larry: ¿No podría seguir utilizando la lógica de validación de su respuesta y combinarla con esta sintaxis de Rails para índices compuestos? –