Powiązania i (wiele) klucze obce w szynach (3.2): jak je opisać w modelu i zapisać migracje

Mam 3 modele: Pytanie, Opcja, Reguła

Opcje has_many; Opcja wymaga klucza obcego dla question_id

Tabela reguł składa się z 3 kluczy obcych:

2 kolumny / odwołania do pytań_id -> klucze obce o nazwach „założono_kwestionowane_id” i „konsekwencyjne_kwestionowane”1 kolumna / odwołanie do id_opcji -> klucz obcy o nazwie id_opcji lub id_warunku

Powiązania dla reguły: reguły has_many; i Opcja has_one rule

Chcę zrozumieć, w jaki sposób zapisywać migracje do tego i jak to kojarzy się z instrukcjami „has_many” / „belongs_to”, które piszę w moim modelu, oraz opcję „: foreign_key”, którą mogę dołączyć do mojego modelu.

Miałem to dla mojej migracji Opcji, ale nie jestem pewien, w jaki sposób instrukcja „add_index” działa pod względem kluczy obcych i jak mogę jej użyć do mojej migracji Reguł: (moje modele Pytanie i Opcje mają odpowiednie instrukcje has_many i belongs_to - i pracuj dobrze)

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

Dziękuję za pomoc!

questionAnswers(3)

yourAnswerToTheQuestion