0


0

私は自分のrailsアプリに 'case’モデル用の多対1の多態性レール関連を持っています。 ケースがあることがたくさんあるので、私はそれぞれのものが持っているケースにアクセスすることによって 'thing_that_has_a_case.case’を行います。

しかし、私は他の道を行こうとしていると私は方法がわからない。 caseオブジェクトにアクセスできますが、ケースに入っているものにアクセスしたいのです。 レールにこれを行う方法はありますか? オブジェクトの種類ごとに異なるSQL検索を行う醜いスイッチでそれを行うことができましたが、私はレールがより良い方法を持つことを望んでいました。 ありがとうございます。

1 Answer


1


あなたのケースモデルに次のようなものを追加することができます。

belongs_to :parent, :polymorphic => true
.which assumes you have fields parent_id and parent_type in

ケースモデル(これらの関連付けフィールドの命名方法に応じて、最初の引数を `+ belongs_to `に変更します)。 これを取得したら、特定のケースインスタンスの ` case.parent +`を参照できるようになります。

そして、明確にするために、この関係の一方には次のようなものがあります。

has_many :cases, :as => :parent, :dependent => :destroy

(私はあなたがすでにあなたの説明に基づいてその作業をしていると仮定しています)