Если я использую: class_name приписывают has_one, что я вставляю миграцию?

У меня есть модель в моем приложении для направляющих, которое использует :class_name атрибут для has_one:

class Foo < ActiveRecord:Base
  has_one :main_bar, :class_name => "Bar"

  # ...
end

Я немного не уверен, что вставить миграцию для этого класса теперь. Я могу использовать ссылки? Что будет направляющие искать как имя столбца для :main_bar? Я могу сделать это как это?

class CreateFoos < ActiveRecord::Migration
  def self.up
    create_table :foos do |t|
      t.references :main_bar
    end
  end

  def self.down
    drop_table :foos
  end
end

Спасибо!

6
задан Simone Carletti 2 February 2010 в 12:52
поделиться

1 ответ

Вы не кладите ничего в таблицу с отношениями «HAS_ONE». Enternal_key идет в другой стол. В вашем примере выше, вам нужно добавить внешний ключ к вашим таблице .

В миграции вы можете использовать:

t.references :foo

или:

t.integer :foo_id

Либо один будет работать.

7
ответ дан 17 December 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: