2012-10-03 46 views
0

我對如何在Rails中處理一個相當簡單的問題充滿興趣。我需要爲用戶記錄電話號碼,並且我想添加用戶選擇一個電話號碼作爲主要聯繫人號碼的功能。我已經有了一個PhoneNumber類(多態,因爲企業也有電話號碼),所以這一切都建立起來了。Rails - 小學和中學的電話號碼

我想,我可以做的兩種方式這一個:

  1. 成立一個協會,其中一個用戶的has_many電話號碼,並添加一個字段,表明電話號碼是否是主號碼該用戶。
  2. 爲主要電話號碼設置一個單獨的屬性(因爲用戶只有一個),然後將第二個電話號碼設置爲has_many關聯。

在這兩種情況下,我都必須添加一些代碼,以便在用戶將新電話號碼指定爲主電話號碼時更改所有關聯電話號碼的屬性。我只是很好奇,如果更有經驗的用戶覺得這裏顯然是最好的做法。

+1

因爲用戶可能有很多電話號碼,has_many:phone_numbers協會是我會使用的。 –

+0

Surase - 我玩過了,我更喜歡你的實現。如果你將它作爲答案提交,我會很樂意選擇它。 – Bryce

回答

0

因爲用戶可能有很多電話號碼,has_many:phone_numbers關聯是我會使用的。 :)

0

我寧願製作兩個型號PrimaryNumberSecondaryNumber。關係將爲User has_one PrimaryNumberUser has_many(has_one取決於您允許的號碼數)SecondaryNumber。這樣,你可以得到

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

爲了簡單,因爲只有一個Primary Number,您可以在User表本身primary_number有列。然後,你將不需要0​​表/模型