0

多相assoc /継承されたリソースで何が起こっているのか把握するのに問題があります。ドキュメントでは、それは以下のように書かれています。継承されたリソースbelongs_to&多態的な問題

現在のところ、継承リソースは限定されており、ネストされた2つのポリモーフィックな関連付けはできません。

しかし、この例を示していきます。

あなたも、ネストされたリソースとそれを使用することができます。

class CommentsController < InheritedResources::Base 
    belongs_to :project do 
     belongs_to :task, :file, :message, :polymorphic => true 
    end 
    end 

- 私のコードは似ていますが、基本的に、私はcommentableするプロジェクトを必要とするだけでなく、プロジェクトの下にネストされているタスク、。 - しかし、私は次の操作を実行した場合にのみ、半作品上記のコード:

class CommentsController < InheritedResources::Base 

    belongs_to :project, :polymorphic => true do 
     belongs_to :task, :polymorphic => true 
    end 

    end 

しかし、私は上記の操作を行うとき、私はまだ私は順番に使用する必要が私のプロジェクトビュー、内?、親のような方法を失っていますリソースがプロジェクトかタスクかどうかを判断するために、部分的なフォームで正しいパラメータを呼び出すことができます(プロジェクトコメントフォームが1つのタブにあり、次にタスク用のタブがあり、ajaxにはフォームにそのコメントを書く) -

私は上記のことがドキュメントが参照しているまさに限界であるのか疑問に思っています(しかし、それは私が上のようにそれをネストすると、プロジェクトとタスクのコメントを投稿するにはouldはポリモーフィックな関連付けのエラーが見つからないので、欠けているメソッドを除いて、動作しているように思えます)、誰かが創造的な回避策のアイディアを持っていれば、この設定を入れ子にするのは正しい方法ではありません。

答えて

0

ネストされたケースで使用するリソースの種類をそれぞれ指定する必要があるということです。この例では、ヒットしたルートに応じて、プロジェクトのタスク、ファイル、またはメッセージを使用してネストされたオブジェクトを表示します。

コード例では、各ネストに1つのリソースしか使用していないため、polymorphic => trueで何を達成しようとしているのか分かりません。

関連する問題