У меня есть приложение Rails 3.1 с моделью User
и моделью Venue
. Эти две модели имеют отношения HABTM - пользователь может управлять многими объектами, а объектом может управлять множество пользователей.
Я бы хотел, чтобы пользователи могли выбирать место по умолчанию, поэтому я пытаюсь добавить атрибут default_venue_id
к User
со следующей миграцией:
class AddDefaultVenueIdToUser < ActiveRecord::Migration
def self.up
add_column :users, :default_venue_id, :integer
end
def self.down
remove_column :users, :default_venue_id
end
end
Проблема в том, что когда я запускаю эту миграцию для своей базы данных PostgreSQL, предполагается, что default_venue_id
является внешним ключом для связи с несуществующей таблицей default_venues
и выдает следующую ошибку:
PGError: ERROR: relation "default_venues" does not exist
: ALTER TABLE "users" ADD FOREIGN KEY ("default_venue_id") REFERENCES "default_venues" ("id")
Должен ли я что-то делать, чтобы сообщить базе данных, что я не пытаюсь создать отношения или я поступаю неправильно?
Редактировать: Я только что понял, что другой разработчик, который работал над проектом, добавил гем schema_plus , который автоматически определяет ограничения для столбцов, заканчивающихся на _id
Это объясняет, почему я никогда не сталкивался с таким поведением раньше!