ActiveRecordを使用して、私は0以上のユーザが(has_many関連を介して)オブジェクトClientを持っています。クライアントには、手動で設定できる 'primary_contact'属性もありますが、常に関連するユーザーの1つを指し示す必要があります。私。 primary_contactは、関連付けられたユーザーがいない場合のみ空白にすることができます。ActiveRecordアソシエーションの特定のオブジェクトに対する有効な参照を作成/維持するにはどうすればよいですか?
がa)は、ユーザがクライアントに追加された最初の時間は、primary_contactは、そのユーザーを指すように設定されています
クライアントように実装するための最良の方法は何ですか?
b)すべてのユーザーが削除されない限り、primary_contactは常にユーザーの関連付けに含まれますか?
つまり、「プライマリコンタクト」のタイトルを特定のクライアントのユーザーの1人に指定して再割り当てするにはどうすればよいですか?私は数多くのフィルタとバリデーションを手がかりにしてきましたが、それは正しくできません。どんな助けもありがとう。
UPDATE:私はソリューションの無数があると確信しているが、私はそれを削除してから検証するためにクライアントにbefore_saveコールを使用して(必要に応じて設定)されているときに、ユーザーがクライアントに通知したことになりましたそのprimary_contact。この呼び出しは、削除される直前にユーザーによってトリガーされます。これはアソシエーションを更新するときにすべてのエッジケースを捕捉するわけではありませんが、必要なものに対しては十分です。