0

ユーザー=>にhas_manyレール=>を通じて:user_contacts 連絡先=>にhas_many:ユーザー、:=>を通じて:user_contactsは、モデル・アソシエーション・シナリオ

プロファイル

今のプロファイルのために、単一ありますそれぞれのユーザーのプロフィールにはアクセスできますが、URLに基​​づいてアクセスする方法は2つあります。公開URLとプライベートURLがあります。公開URLはユーザーに属しますが、プライベートURLは連絡先に属します(つまり、その連絡先が所属するユーザーのプロフィールへのプライベートURLとして連絡先に割り当てられます)。このシナリオでは、ユーザーと連絡先とのプロファイル関連付けを扱う方法が混乱しています。

iは、クラスプロファイル<はActiveRecord ::基本クラスPublicProfile <プロフィール、クラスPrivateProfile <プロフィール

のようなプロファイルのSTIを使用する必要がありますが、それが有効だと、どのように私はここで関連付けを管理するのですか?

答えて

0

単純に単一のURLタイプを持ち、テーブルのタイプと区別するのはどうでしょうか。その後、あなたの線に沿って何かを持つURLの種類ごとに関係を持つことができます。

belongs_to :private_url, :class_name => "Profiles", :conditions => "type = 0" 
belongs_to :public_url, :class_name => "Profiles", :conditions => "type = 1" 

これはかなりあなたが管理する必要があなたのassciationsを「簡素化」でしょう。それは私が考えていないすべての答えではありませんが、おそらくあなたがそれを動作させることができれば、あなたが抱えている問題がより簡単に対処できるように事を単純化します。

上記の正確な構文は間違っているかもしれませんが、私が示唆していることの要点は...

関連する問題