Assoziationen und (mehrfache) Fremdschlüssel in Schienen (3.2): wie man sie im Modell beschreibt und Migrationen aufschreibt
Ich habe 3 Modelle: Frage, Option, Regel
Frage has_many Optionen; Option benötigt einen Fremdschlüssel für question_id
Die Regeltabelle besteht aus 3 foreign_keys:
2 Spalten / Verweise auf Fragen-IDs -> Fremdschlüssel mit den Bezeichnungen 'Annahme_Frage_ID' und 'Konsequente_Frage_ID'1 Spalte / Verweis auf option_id -> Fremdschlüssel mit dem Namen option_id oder condition_idAssoziationen für Regel: Frage hat_viele Regeln; und Option has_one-Regel
Ich möchte verstehen, wie Migrationen dafür geschrieben werden und wie dies mit den Anweisungen 'has_many' / 'belong_to', die ich in mein Modell schreibe, und der Option ': foreign_key' zusammenhängt, die ich in mein Modell aufnehmen kann.
Ich hatte dies für meine Option-Migration, bin mir aber nicht sicher, wie die Anweisung "add_index" in Bezug auf Fremdschlüssel funktioniert und wie ich sie für meine Regelmigration verwenden kann: (Meine Frage- und Optionsmodelle haben entsprechende has_many- und belong_to-Anweisungen - und gut funktionieren)
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
Danke für die Hilfe!