Добавление ссылки на модель в существующую модель Rails

Я хотел бы знать "правильный" подход к добавлению отношения между двумя существующими классами в 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,: двоичный,: логический.

... без ссылки на: ссылку.

27
задан tshepang 9 November 2013 в 21:20
поделиться