как перенести ассоциации ActiveRecord в БД - PullRequest
0 голосов
/ 30 июля 2010

Я выполняю следующие команды для создания модели:

script/generate model user firstname:string lastname:string

script/generate song group songname:string songtitle:string

a user has_many :songs и song belongs_to :user

после этого я запускаю rake db:migrate, однако ассоциации неотнес к моей фактической БД.Потому что в моей реальной БД я не вижу ни одного столбца user_id в songs table ... и т. Д.

Нужно ли вручную изменять миграцию и добавлять необходимые столбцы?

1 Ответ

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

Насколько мне известно, вам нужно явно добавить user_id в файл миграции или при создании модели. Теперь я знаю способ обнаружения ассоциации и создания пользовательского ключа хотя бы из строки генерации:

Я считаю, что вы можете выбрать:

script/generate song group songname:string songtitle:string user_id:integer

Или в процессе миграции - добавьте это в файл миграции:

t.integer :user_id

Или также добавьте это в ваш файл миграции. Я не верю, что вы можете сделать это из командной строки. И вам нужно будет это сделать после создания ассоциации belongs_to :user в вашей модели songs.rb.

t.references :user

Как примечание, я обычно беру второй вариант.

Еще один, кроме общих правил ruby ​​/ rails - обычно имена атрибутов строчные и разделяются подчеркиванием поэтому song_name вместо songname. Это вопрос вкуса и зависит от вас, как вы хотите реализовать.

Надеюсь, это поможет!

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