0

私は、Railsでかなり単純な問題を処理する方法について少し気になっています。ユーザーの電話番号を記録する必要があります。ユーザーが主要な連絡先番号として1つの電話番号を選択できる機能を追加したいと思います。私はすでにPhoneNumberクラスを持っているので(企業にも電話番号があるので多形です)、これですべて設定されました。

私はこれを2つの方法のいずれかで実行できると考えています。

  1. ユーザーがhas_manyの電話番号を持つ関連付けを設定し、その電話番号がそのユーザーのプライマリ番号であるかどうかを示すフィールドを追加します。
  2. プライマリ電話番号に個別の属性を設定し(ユーザーには1つしかないため)、次に、has_manyアソシエーションとしてセカンダリ電話番号を設定します。

いずれの場合も、ユーザーが新しい電話番号をプライマリとして指定したときに、関連付けられているすべての電話番号のプロパティを変更するコードを追加する必要があります。より経験豊富なユーザーが、ここに明らかにベストプラクティスがあると感じているかどうかだけ知りたいです。

4

2 に答える 2

0

ユーザーは多くの電話番号を持っている可能性があるため、has_many:phone_numbersアソシエーションを使用します。:)

于 2012-10-05T05:08:26.990 に答える
0

PrimaryNumber2つのモデルとを作成したいと思いSecondaryNumberます。関係は Userhas_one PrimaryNumberUserhas_many(許可する数に応じてhas_one)になりますSecondaryNumber。そうすればあなたは得ることができます

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

は1つしかないため、簡単にするために、テーブル自体Primary Numberに列を含めることができます。そうすれば、テーブル/モデルは必要ありませんUserprimary_numberPrimaryNumber

于 2012-10-03T05:57:49.063 に答える