Utilizzando inherited_resources per nidificate, commenti polimorfici
-
29-09-2019 - |
Domanda
Sono nuovo di utilizzare le risorse ereditate e voglio usarlo per commenti nidificati polimorfici. Ho diversi oggetti che saranno commentabile (articoli, gallerie, ecc) e commenti possono anche essere nidificato. Sto utilizzando una combinazione di awesome_nested_set (parent_id, LFT, rgt) con il mio modello Commento avendo commentabile polimorfica colonne.
Il controller ha bisogno di ricevere una richiesta AJAX (solo) per la Creazione azione ed eseguire come di seguito:
Distacco di / articoli / 12 / commenti / 34 Crea un commento con commentabile pari a @article (12) e genitore pari a @comment (34)
/ articoli / 12 / commenti / 34
Distacco di / galleria / 12 / commenti / 34 crea un commento con commentabile pari a @gallery (12) e genitore pari alla @comment (34)
Sono un po 'bloccato su dove cominciare. È questo un caso d'uso per il buon risorse ereditate?
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
Soluzione
commenti annidati sono difficili. Rotaie risorse non forniscono a passare un id all'azione creare, quindi non credo che si possa correttamente POST all'azione creare in questo modo. Potrebbe essere necessario aggiungere un commento alle opzioni belong_to, in modo da poter inviare a / commenti / 33 / commenti . Non so se InheritedResources supportano questa. Se lo fa, la creazione di oggetti dovrebbe essere automatico. È possibile fare riferimento roba come parent_url troppo.