Mit inherited_resources für verschachtelt, polymorphe Kommentare
-
29-09-2019 - |
Frage
Ich bin neu in geerbt Ressourcen und will, um es für polymorphe verschachtelte Kommentare. Ich habe mehrere Objekte, die sein wird, kommentierbaren (Artikel, Galerien, etc.) und Kommentare können auch sein verschachtelt. Ich verwende eine Kombination von awesome_nested_set (parent_id, lft, RGT) mit meinem Kommentar Modell polymorpher kommentierbaren mit Spalten.
Der Regler benötigt einen AJAX-Request (nur) erhält für das Erstellen Aktion und führen Sie wie folgt:
Posting auf / articles / 12 / Kommentare / 34 einen Kommentar mit kommentierbaren gleich @article schafft (12) und Eltern @comment gleich (34)
/ articles / 12 / Kommentare / 34
Posting auf / gallery / 12 / Kommentare / 34 erstellt einen Kommentar mit kommentierbaren gleich @gallery (12) und Mutter gleich zu @comment (34)
Ich bin ein bisschen aufgeklebt, wo zu beginnen. Ist das ein guter Anwendungsfall für geerbt 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
Lösung
Verschachtelte Kommentare sind schwierig. Rails Ressourcen bieten nicht eine ID zum Erstellen Aktion im Vorbeigehen, so dass ich glaube nicht, dass Sie richtig POST die Aktion auf diese Weise erstellen. Sie könnten Kommentar zu den BELONG_TO Optionen hinzufügen müssen, so dass Sie auf / Kommentare / 33 / Kommentare Beiträge schreiben können. Ich weiß nicht, ob InheritedResources dies unterstützen. Ist dies der Fall, sollte die Objekterstellung automatisch sein. Sie können auch Sachen wie parent_url verweisen.