Я читал онлайн-примеры того, как создавать таблицы Rails, и я заметил, что сценарии миграции, которые я создал, содержащие ссылки, не работают из коробки. Я подумал, что, возможно, я сделал что-то не так, поэтому я попробовал сейчас сделать тестовое приложение/миграцию с источником данных SQLite3. Я выполнил следующие команды:DB migrate scripts break on ссылки
$ rails g scaffold SchoolClass name
$ rails g scaffold Student name SchoolClass:references
И это сделало мои сценарии миграции (наряду со всем остальным).
Migration script for dependent table with reference to Model
Я побежал сценарии миграции SQLite3 и он работал отлично.
Когда я пытался делать те же шаги, описанные выше в отношении источника данных Postgres, я продолжал получать следующее:
PG::UndefinedTable: ERROR: relation does not exist
Единственный способом я мимо этот вопрос, если бы я пошел в сценарий миграции и обновил t.references и заменил имя класса на фактическое имя таблицы. В руководстве по перенаправлению Rails (http://guides.rubyonrails.org/v2.3/migrations.html#special-helpers) он сказал, что для хелпера ссылок вы передаете имя модели. В случае с Postgres это, похоже, не так.
Это довольно простое исправление для замены имен моделей именами таблиц, но у меня есть тонна таблиц для миграции, и каждая таблица может иметь большое количество ссылок. Кто-нибудь видел это раньше, и есть ли способ продолжить использование утилиты scaffold для миграции?
Appreciative любой полезной помощи,
- Джо