Associações e chaves múltiplas (múltiplas) em trilhos (3.2): como descrevê-las no modelo e redigir migrações
Eu tenho 3 modelos: pergunta, opção, regra
Pergunta has_many options; A opção precisa de uma chave estrangeira para o question_id
A tabela de regras consiste em 3 foreign_keys:
2 colunas / referências a question_ids -> chaves estrangeiras nomeadas como 'assumption_question_id' e 'consequent_question_id'1 coluna / referência a option_id -> chave estrangeira nomeada como option_id ou condition_idAssociações para Regra: Pergunta has_many rules; e opção has_one regra
Eu quero entender como escrever migrações para isso, e como isso se associa às declarações 'has_many' / 'belongs_to' que eu escrevo no meu modelo, e a opção ': foreign_key' que eu posso incluir no meu modelo.
Eu tinha isso para minha migração de opções, mas não tenho certeza de como a instrução "add_index" funciona em termos de chaves estrangeiras e como posso usá-las para minha migração de regras: (meus modelos de pergunta e opções têm instruções has_many e belongs_to apropriadas - e funciona bem)
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
Obrigado pela ajuda!