Ruby on Rails: как мне написать миграцию, чтобы добавить ссылку на таблицу? - PullRequest
0 голосов
/ 28 июля 2010

у меня

add_column :foos, :bar_id, :integer

но я был не в состоянии сделать что-то вроде

@foo.bar.name

вместо

Bar.find(@foo.bar_id)

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

Ответы [ 4 ]

2 голосов
/ 28 июля 2010

см. Руководство по миграции здесь .

create_table :products do |t|
  t.references :category
end

Это позволяет указать его при миграции, но вам также необходимо использовать Proper_to и либо * 1008Атрибуты * has_one или has_many в модели.Вы могли бы сделать это без миграции, чтобы создать ее, поскольку у вас уже есть идентификатор внешнего ключа, который уже настроен.Просто используйте вышеупомянутые атрибуты.

Также смотрите это Руководство по ActiveRecord .

1 голос
/ 28 июля 2010

Вы должны отредактировать соответствующий файл модель и добавить туда, например, объявление belongs_to.Это именно то, что позволяет называть @foo.bar.name.

0 голосов
/ 17 июня 2013

Если вы используете Rails 4.x, теперь вы можете генерировать миграции со ссылками, например:

rails генерируют миграцию AddUserRefToProducts пользователь: ссылки

Как вы можете видеть на направляющих рельсов

0 голосов
/ 28 июля 2010

Зачем вам это нужно при миграции? Почему вы не можете просто добавить поле bar_id в миграцию, чем добавить ассоциацию в модель foo?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...