Всякий раз, когда вы генерируете свой заказ, вы можете сделать:
generate model Order description:text quantity:integer customer:references
И он автоматически создаст для вас внешний ключ в процессе миграции. Соглашение rails состоит в том, что каждая строка будет иметь первичный ключ с именем «id», а внешний ключ - это таблица, на которую она ссылается, за которой следует подчеркивание, а затем id. Так что в этом случае таблица заказов будет иметь атрибут с именем customer_id
Поскольку вы уже сгенерировали свой, вы должны создать новый сценарий миграции, который добавляет в таблицу заказов целочисленный столбец с именем customer_id.
Вы не хотите изменить существующую миграцию. Просто создайте новый, который добавляет столбец.
class add_customer_id_to_orders < ActiveRecord::Migration
def self.up
add_column :orders, :customer_id, :integer
end
def self.down
remove_column :orders, :customer_id
end
end
Примечание. Если вы уже что-то сделали для создания данных в своей базе данных, это приведет к появлению некоторых нулевых внешних ключей, которые вы захотите исправить, или просто удалите и создайте новые данные.