Ich habe zwei Modelle. Ein Events
Modell und ein EventOption
. Die Events
wird have_many
:event_options
.Rails5 - Hinzufügen von Fremdschlüssel zu vorhandenen Modellen in Postgres
Mein Problem ist, dass, wenn ich versuche, eine Migration zu add_foreign key :event_options, :events
zu tun, damit ich sie verbinden kann, bekomme ich folgende Fehlermeldung:
ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column "event_id" referenced in foreign key constraint does not exist
: ALTER TABLE "event_options" ADD CONSTRAINT "fk_rails_3995702fad"
FOREIGN KEY ("event_id")
REFERENCES "events" ("id")
Hier ist mein schema.rb:
ActiveRecord::Schema.define(version: 20160806001743) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
create_table "event_options", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "price"
t.text "description"
t.string "name"
end
create_table "events", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "name"
t.boolean "active", default: true
end
create_table "users", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "email", null: false
t.string "encrypted_password", limit: 128, null: false
t.string "confirmation_token", limit: 128
t.string "remember_token", limit: 128, null: false
t.index ["email"], name: "index_users_on_email", using: :btree
t.index ["remember_token"], name: "index_users_on_remember_token", using: :btree
end
end
Ich weiß, es gibt: ID-Spalten, die funktionieren, weil ich mit ihnen in der Konsole spielen kann. Ich weiß, dass mir hier etwas fehlt, damit die Foreign Keys für die App arbeiten, aber für das Leben von mir weiß ich nicht was.
Es tun will 'event_id' Sie, dass auf Ihrem' event_options' Tabelle müssen, da sonst die 'HAS_MANY'- wird auch nicht –