0

Ich bin neu bei der Verwendung geerbter Ressourcen und möchte sie für polymorphe verschachtelte Kommentare verwenden. Ich habe mehrere Objekte, die kommentieren (Artikel, Galerien, etc.) und Kommentare können auch geschachtelt sein. Ich verwende eine Kombination von awesome_nested_set (parent_id, lft, rgt) mit meinem Kommentarmodell mit polymorphen kommentativen Spalten.Vererbte_Ressourcen für verschachtelte, polymorphe Kommentare verwenden

Die Steuerung benötigt eine AJAX Anfrage (nur) zu empfangen, für die Aktion erstellen und auszuführen, wie unten:

Posting zu /articles/12/Kommentare/34 schafft einen Kommentar mit kommentierbaren gleich @article (12) und Eltern gleich @comment (34)

/articles/12/Kommentare/34

Posting zu /gallery/12/Kommentare/34 einen Kommentar mit kommentierbaren gleichschafft 10 @gallery (12) und Eltern gleich @ Kommentar (34)

Ich bin ein bisschen fest, wo ich anfangen soll. Ist das ein guter Anwendungsfall für geerbte Ressourcen?


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 

Antwort

0

Verschachtelte Kommentare sind schwierig. Rails-Ressourcen liefern keine ID an die create-Aktion, daher glaube ich nicht, dass Sie die create-Aktion auf diese Weise richtig POSTIEREN können. Sie müssen möglicherweise einen Kommentar zu den Optionen von "assign_to" hinzufügen, damit Sie auf /comments/33/comments posten können. Ich weiß nicht, ob InheritedResources dies unterstützt. Wenn dies der Fall ist, sollte die Objekterstellung automatisch sein. Sie können auch auf Dinge wie parent_url verweisen.

+0

Also dann nur commentable_id und commentable_type als Teil des Kommentars Hash übergeben? Ich muss in der Lage sein, diese einzustellen und wollte ursprünglich von der URL ziehen. –

Verwandte Themen