Asociaciones y (múltiples) claves externas en los rieles (3.2): cómo describirlas en el modelo y redactar las migraciones
Tengo 3 modelos: Pregunta, Opción, Regla
Pregunta tiene muchas opciones; Opción necesita una clave externa para question_id
La tabla de reglas consta de 3 teclas foráneas:
2 columnas / referencias a question_ids -> claves foráneas nombradas como 'assumption_question_id' y 'consecuent_question_id'1 columna / referencia a option_id -> clave externa nombrada como option_id o condition_idAsociaciones para la regla: la pregunta tiene muchas reglas; y la regla has_one Option
Quiero entender cómo redactar las migraciones para esto, y cómo eso se asocia a las declaraciones 'has_many' / 'pertenece_ a' que escribo en mi modelo, y la opción ': foreign_key' que puedo incluir en mi modelo.
Tenía esto para mi migración de opciones, pero no estoy seguro de cómo funciona la declaración "add_index" en términos de claves externas, y cómo puedo usarla para mi migración de reglas: (mis modelos de preguntas y opciones tienen declaraciones adecuadas de has_many y corresponde a - y trabajar bien)
class CreateOptions < ActiveRecord::Migration
def change
create_table :options do |t|
t.integer :question_id
t.string :name
t.integer :order
t.timestamps
end
add_index :options, :question_id
end
end
¡Gracias por la ayuda!