2014-10-14 4 views
0

У меня есть рельсы 4 приложения.Добавить внешний ключ к существующей модели рельсов

У меня есть две таблицы, одна для «области» и одна для «данных». Данные относятся к сфере охвата. Я забыл добавить внешний ключ при настройке данных, и теперь я пытаюсь написать миграцию, чтобы добавить его.

Я создал таблицу изменений, но миграция, которую я написал, не работает.

Я не могу следовать примеру направляющих рельсов, потому что это не соответствует опыту, который у меня есть в моей установке (не знаю, почему).

Миграция у меня есть:

class AddFKeyToData < ActiveRecord::Migration 
    def change 

    add_foreign_key :data, :scopes 

    end 
end 

Пожалуйста, вы можете мне помочь определить проблему.

Спасибо

ответ

0

Откат это миграция:

rake db:rollback 

Затем перейдите в вашу миграции и редактировать add_foreign....

к:

add_column :data, :scope_id, :integer 

Должно работать!

+0

Спасибо, Джон. Означает ли это, что я не обязан говорить, что это внешний ключ? – Mel

+0

Его рельсы волшебство! Rails признает это сам по себе! Но вы должны быть уверены, что первая таблица называется 'data', а ключ из области называется' scope_id'. Чтобы быть уверенным на 100%, зайдите в папку проекта rails и откройте 'db \ schema'! Там вы можете увидеть свои существующие миграции! Если вы не уверены! Просто опубликуйте его! –

+0

Извините, но вы все равно должны добавить к своей модели данных: 'belongs_to: scope' и вашей модели:' has_many: datas' Тогда вы можете позвонить, например, 'Scope.first.datas' –

Смежные вопросы