Zweiter RESTful Controller für dieselbe Ressource?!

Liebe RoRUG,

mein Problem ist kurz beschrieben:

Ich möchte gerne eine zweiten REST-ful Controller für dieselbe
Ressource haben.

Nimmt man mal den einfachen Fall, dass man ein Model sowohl genestet
(Anzeigen der Meilensteine eines Projekts) als auch ungenestet
(Anzeigen aller aller Projekte) haben will, dann geht der naive
Ansatz zum Beispiel schon mal nicht:

map.resources :projects do |projects|
projects.resources :milestones
end

map.resources :milestones

führt, je nachdem, was zuerst definiert wird, zu routing/path-
Fehlern. Auch will man ja nicht beides auf denselben Controller
routen - der Controller für die genestete Resource muss z.B. vorher
das Projekt laden, was im non-nesting-Fall nicht notwendig ist (und
auch gar nicht geht) - es muss also ein zweiter Controller her. Klar
kann man hier einfach einen “normalen” Controller nehmen und den dann
von Hand mappen, aber das sollte doch auch einfacher gehen, oder?!

Hat das schon mal jemand gemacht oder hat jemand ne Idee dazu?!

Danke&GrüßeStefan

PS: Ich meine mal irgendwann über ein Plugin gestolpert zu sein, mit
dem man einen zweiten REST-Controller für dieselbe Resource
generieren kann, hab den aber wieder verlegt - vielleicht ist da ja
schon mal jemand anders
drüber gestolpert?!_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Hallo Stefan,

also zumindest kannst Du mit den

:controller
:path_prefix
:name_prefix

Parametern der map-Methode weitere Routen auf einen alternativen
Controller (in einem anderen URL- und Namensraum) definieren. Aber das
weist Du ja wohl schon…

Gruß,
Martin


GL Networks
Martin R.
mail [email protected]
www http://www.glnetworks.de/

Ich freue mich immer über eine Empfehlung bei workingwithrails…
http://www.workingwithrails.com/recommendation/new/person/6641-martin-rehfeld

Hallo Martin,

aah, guter Hinweis: damit kann man das schon hinkriegen, da: http://
api.rubyonrails.com/classes/ActionController/Resources.html
hätte ich mal genauer lesen sollen: Mit

map.resources :milestones,
:controller => “global_milestones”,
:path_prefix => “/global_milestones”,
:name_prefix => “global_”

kann man das ganze auf einen anderen Controller mappen und
der :name_prefix sorgt dafür, dass sich auch die helper-namen
für urls nicht in die Quere kommen.

Merci für den Hinweis!

Viele
GrüßeStefan

Am 07.10.2007 um 21:40 schrieb Rehfeld, Martin: