ネストされた多型のコメントにensulited_resourcesを使用します
-
29-09-2019 - |
質問
私は継承されたリソースを使用するのは初めてであり、多型ネストされたコメントにそれを使用したいと考えています。コメント可能ないくつかのオブジェクト(記事、ギャラリーなど)があり、コメントもネストできます。 Awesome_nested_set(parent_id、lft、rgt)の組み合わせを使用しており、コメントモデルには多形のコメント可能な列があります。
コントローラーは、作成アクションのためにAJAXリクエスト(のみ)を受信し、以下のように実行する必要があります。
投稿 /記事/12/コメント/34 @article(12)に等しいコメント可能なコメントを作成し、@comment(34)に等しい親でコメントを作成します
/記事/12/コメント/34
投稿 /ギャラリー/12/コメント/34 @gallery(12)に等しいコメント可能なコメントと@commentに等しいコメントを作成します(34)
私はどこから始めればいいのかと少し立ち往生しています。これは、継承されたリソースのための良い例ですか?
class CommentsController < InheritedResources::Base
respond_to :js, :only => :create
belongs_to :article, :cheat, :gallery, :video, :polymorphic => true
do
belongs_to :comments
end
def create
create! do |format|
# How in here do I build a comment so that it handles
polymorphism?
@comment.children.create(:commentable => @article or @cheat or
@something_generic?)
end
end
end
解決
ネストされたコメントは難しいです。 Railsリソースは、IDを作成アクションに渡す際に提供されていないため、この方法で作成アクションを適切に投稿できるとは思いません。 belbing_toオプションにコメントを追加する必要があるかもしれないので、投稿できます /コメント/33/コメント. 。 EnseritedResourcesがこれをサポートするかどうかはわかりません。もしそうなら、オブジェクトの作成は自動でなければなりません。 Parent_urlのようなものも参照できます。
所属していません StackOverflow