Я хотел бы знать "правильный" подход к добавлению отношения между двумя существующими классами в Rails 3.
Учитывая существующие модели: Clown & Rabbit
Я хотел бы добавить ссылку (own_to) из Rabbit на Clown. Я начинаю с попытки сгенерировать миграцию:
rails g migration AddClownToRabbits clown:reference
, которая дает мне миграцию, которая выглядит так:
class AddClownToRabbits < ActiveRecord::Migration
def self.up
add_column :rabbits, :clown, :reference
end
def self.down
remove_column :rabbits, :clown
end
end
После rake db: migrate
в этой миграции я исследую SQLite3 development.db и вижу новый столбец: ссылка на "клоун"
Думаю, я ожидал целочисленного столбца "clown_id"
и миграцию, которая выглядела так:
class AddClownToRabbits < ActiveRecord::Migration
def self.up
add_column :rabbits, :clown_id
end
def self.down
remove_column :rabbits, :clown_id
end
end
Я уверен: ссылка должна быть эквивалентна " t.references: clown ", но я не могу найти документацию (большой сюрприз). API сообщает, что add_column: Создает экземпляр нового столбца для таблицы. Параметр типа обычно является одним из собственных типов миграции, который может быть одним из следующих:: primary_key,: string,: text,: integer,: float,: decimal,: datetime,: timestamp,: time,: date,: двоичный,: логический.
... без ссылки на: ссылку.