#ruby-on-rails #ruby #migration
#ruby-on-rails #ruby #миграция
Вопрос:
Я создал таблицу со references
столбцом в более ранней миграции, и теперь я хотел бы ее удалить. Я знаю, что могу выполнить вызов для remove_column
сгенерированного имени, но есть ли способ удалить его, используя вместо этого имя таблицы?
remove_references :blah, :users
вместо remove_column :blah, :user_id
Ответ №1:
Как вы уже догадались, существует метод с точным названием remove_references. Ему нужен только один параметр, такой же, как и один параметр references
:
Из документации API:
remove_references(*args)
#Removes a reference. Optionally removes a type column. remove_references and
#remove_belongs_to are acceptable.
Examples
t.remove_references(:goat)
t.remove_references(:goat, :polymorphic => true)
t.remove_belongs_to(:goat)
Ответ №2:
Для этого нет специального метода. Когда вы задумываетесь об этом, это имеет смысл, поскольку references
метод фактически не создает внешнего ограничения в БД, что означает, что этот сгенерированный столбец вообще не является особенным.
Обновить
Как отметил @Zabba, похоже, существует метод remove_references . Я никогда не видел, чтобы он использовался на практике, но его описание звучит примерно так.