Если я использую: атрибут Class_name для has_one, что я положил в миграцию?
-
24-09-2019 - |
Вопрос
У меня есть модель в моем приложении Rails, которые используют :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
Спасибо!
Решение
Вы не кладите ничего в таблицу с отношениями «has_one». Enternal_key идет в другой стол. В вашем примере выше вам нужно будет добавить внешний ключ к вашему bars
стол.
В миграции вы можете использовать:
t.references :foo
или:
t.integer :foo_id
Либо один будет работать.
Не связан с StackOverflow