In config/routes.rb:Hat jemand Tipps zum Verwalten polymorpher verschachtelter Ressourcen in Rails 3?
resources :posts do
resources :comments
end
resources :pictures do
resources :comments
end
Ich möchte für mehr Dinge zu ermöglichen und zu kommentiert.
Ich verwende derzeit mongoid (mongomapper ist nicht so kompatibel mit Rails 3 noch, wie ich möchte), und Kommentare sind eine eingebettete Ressource (Mongoid kann noch nicht mit polymorphen relationalen Ressourcen umgehen), was bedeutet, dass ich es tue benötigen Sie die übergeordnete Ressource, um den Kommentar zu finden.
Gibt es elegante Möglichkeiten, einige der folgenden Probleme zu behandeln:
In meinem Controller, muss ich die Eltern finden, bevor Sie den Kommentar zu finden:
if params[:post_id]
parent = Post.find(params[:post_id]
else if params[:picture_id]
parent = Picture.find(params[:picture_id]
end
die chaotisch geht zu erhalten, wenn Ich fange an, weitere Dinge hinzuzufügen, um kommentierbar zu sein.
auch nicht url_for([comment.parent, comment])
nicht, so werde ich etwas in meinem Comment
Modell zu definieren, aber ich denke, ich werde auch sowie möglicherweise eine einen Index Route im Comment
Modell definieren müssen Bearbeiten und neue Routendefinition.
Es könnte mehr Probleme geben, mit denen ich umgehen muss, wenn ich weiter komme.
Ich kann mir nicht vorstellen, dass ich die erste Person bin, die versucht, dieses Problem zu lösen, gibt es irgendwelche Lösungen, um das überschaubarer zu machen?
senden Das sieht eigentlich wirklich gut; Mit ein paar kleinen Änderungen habe ich das einfach umgesetzt und zum größten Teil scheint es gut zu funktionieren. Wo ist die Dokumentation für die Routing-Tricks, die Sie im ersten Teil verwendet haben, damit ich herausfinden kann, wie man die Routen anlegen, aktualisieren, löschen und indexieren kann? – Ryan
Okay, ich denke, ich habe herausgefunden, was du gemacht hast und warum du es hässlich findest. Der Kommentar muss im Grunde genommen die letzte definierte Route sein, da er zu allem passt. Ich habe einen Teil von dem, was du getan hast, und einen Teil von dem, was ich getan habe, benutzt, um alles umzusetzen. Ich schätze deine Hilfe sehr. – Ryan
Ah, richtig, tut mir leid, wenn ich unklar war. Diese gesprenkelten Routen können schwierig sein. – PreciousBodilyFluids