Модификация моделей для создания ассоциации, как правильно это сделать? - PullRequest
2 голосов
/ 18 марта 2012

Скажем, у меня есть две модели существующего приложения на Rails 3, для которых я хочу создать ассоциацию:

User
AccountType

Я хочу создать ассоциацию, такую, которую я могу сделать:

User.account_type
AccountType.users

Таким образом, у пользователя есть один account_type, а у типа account 0 или много пользователей.

На уровне базы данных у пользователя будет account_type_id, а в таблице AccountType не будет столбцов, связанных с ассоциациями.Пользователь.

  1. Итак, мой первый шаг - правильно написать тест?Так что в обоих моих user_spec.rb и account_type_spec.rb я должен создать простой тест, чтобы проверить, есть ли у него прокси-класс .account_type, правильно ли существует account_type.users?что-нибудь еще?

  2. Измените модель User.rb и добавьте own_to: AccountType, а в AccountType.rb добавьте право has_many?

  3. Создатьсценарий миграции, я просто добавляю account_type_id или я использую специальный способ для ссылки на AccountType?

1 Ответ

0 голосов
/ 18 апреля 2012

Относительно тестирования: я согласен с комментарием Дэйва Ньютона о том, что вы должны тестировать любое поведение, которое вы намереваетесь создать с этой ассоциацией (поэтому пишите тесты на возможность создания ассоциации, чтобы найти пользователя или учетную запись по этой ассоциации,и т. д.), но тестирование на наличие описанных вами методов, возможно, идет дальше, чем необходимо.

Ваши шаги 2 и 3 выглядят правильно для меня.

rails g migration add_account_type_id_to_users account_type_id:integer

должно генерировать миграциютебе нужно.

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