0

关于如何在 Rails 中处理一个相当简单的问题,我有点悬而未决。我需要为用户记录电话号码,并且我想添加用户选择一个电话号码作为主要联系人号码的功能。我已经有一个 PhoneNumber 类(多态,因为企业也有电话号码),所以这一切都设置好了。

我认为我可以通过以下两种方式之一来做到这一点:

  1. 设置用户拥有多个电话号码的关联,并添加一个字段以指示该电话号码是否是该用户的主要号码。
  2. 为主要电话号码设置一个单独的属性(因为用户只有一个),然后将辅助电话号码作为 has_many 关联。

在任何一种情况下,当用户指定一个新号码作为主要号码时,我都必须添加一些代码来更改所有关联电话号码的属性。我只是好奇更有经验的用户是否觉得这里显然有最佳实践。

4

2 回答 2

0

因为用户可能有很多电话号码,所以我会使用 has_many :phone_numbers 关联。:)

于 2012-10-05T05:08:26.990 回答
0

我宁愿制作两个模型PrimaryNumberSecondaryNumber. 关系将是 Userhas_one PrimaryNumberUserhas_many (has_one 取决于您允许的数量)SecondaryNumber。这样你就可以得到

 user = User.find(key)
 user.primary_number
 user.secondary_number(s)

为简单起见,因为只有一个Primary Number,您可以在User表本身中有列primary_number。然后,您将不需要PrimaryNumber表/模型

于 2012-10-03T05:57:49.063 回答