Как удалить столбец `ссылки` в rails 3.1?

#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 . Я никогда не видел, чтобы он использовался на практике, но его описание звучит примерно так.