Ich baue eine Galerie auf meiner Website und bekomme ein bisschen mit dem Routing und den damit verbundenen Aktionen in meinen Controllern fest.Rails Routing, Index und Show sind gleich?
Im Prinzip habe ich drei Modelle: Collection
, Album
und Photo
A Collection
Dosenbehälter andere Collection
s oder Albums
aber nicht beides. Ein Album
enthält dann Photo
s.
Bei meinem root /gallery
Pfad ich Route in die Indexansicht. Dies übergibt eine Liste von Sammlungen, die eine Null-Parent-ID haben, und die Ansicht wird angezeigt. Alles gut und gut.
Nun möchte ich diese Collection-Titel verknüpfen, so dass die ID der Sammlung zurückgegeben wird. An dieser Stelle müsste ich normalerweise den Link-Helfer von "gallery_collection_path" verwenden, aber das würde zur Showansicht führen. In meinem Fall sieht es so aus, als wären die Index- und die Show-Ansicht gleich, bis ich zu einer Sammlung mit Alben komme, in der ich dann in der Album-Index-Ansicht wäre.
Wo ich stecken bleibe ist, wie dies in meiner Routes-Datei zu strukturieren und wie die link_to auf die Collection-Namen aussehen sollte.
Zeit in meiner routes.rb
Datei ich habe:
namespace :gallery do
get 'collections/:collection_id', to: 'collections#index'
root to: 'collections#index'
end
Ich glaube aber nicht ganz das ist recht. Ich habe versucht, url_for
zu verwenden, um die URL zu erzeugen, etwa so:
<%= link_to collection.title, url_for(['gallery', 'collections', collection.id]) %>
aber ich bekomme immer folgende Fehlermeldung:
undefined method
to_model‘für 71: Fixnum`
Kann mir jemand vielleicht Schieb mich in die richtige Richtung?
Danke, aber was ist, wenn ich zu Alben komme? Welche Aktionen verwende ich? Was ist mit dem Problem, dass die show-Aktion die Indexaktion für eine verschachtelte Sammlung ist? – rctneil
Mit der obigen Konfiguration der Routen ist die Aktion show nicht identisch mit der Aktion index. Aber mit Ihrer Konfiguration 'get' collections /: collection_id ', zu:' collections # index'', wird show action an die index Aktion weitergeleitet. – ninjarails
Ja, aber ein Album kann in einer Reihe von Untersammlungen enthalten sein. Eine Sammlung auf oberster Ebene wird offensichtlich an alle anderen Sammlungen der obersten Ebene zu Index weitergeleitet, aber eine zweite Ebene, um zum Index zu gehen (um alle Sammlungen dort anzuzeigen oder um zu zeigen, wie wir diese Sammlung zeigen. Das ist mein Problem ? – rctneil