修改模型以创建关联,执行此操作的正确方法是什么?

时间:2012-03-18 13:35:01

标签: ruby-on-rails rspec

假设我有两个现有Rails 3应用程序模型,我想为其创建一个关联:

User
AccountType

我想创建一个关联,以便我可以这样做:

User.account_type
AccountType.users

因此,用户只有一个account_type,而帐户类型有0个或多个用户。

在数据库级别,用户将拥有account_type_id,而AccountType表将没有任何与用户相关联的列。

  1. 所以我的第一步是写一个测试吗?因此,在我的user_spec.rb和account_type_spec.rb中,我应该创建一个简单的测试来查看它是否具有代理类.account_type是否存在account_type.users对吗?其他什么?

  2. 修改User.rb模型并添加belongs_to:AccountType,在AccountType.rb中添加has_many吧?

  3. 创建迁移脚本,我只是添加account_type_id还是使用特殊方式引用AccountType?

1 个答案:

答案 0 :(得分:0)

关于测试:我同意Dave Newton的评论,即您应该测试您打算使用此关联创建的任何行为(因此编写测试以创建关联,通过此关联查找用户或帐户,等等,但是你所描述的对方法存在的测试可能比必要的更远。

你的步骤2和3看起来对我来说。

rails g migration add_account_type_id_to_users account_type_id:integer

应该生成您需要的迁移。