2009-08-25 14 views
1

Also ich habe eine Aktion erstellt, nennen wir es 'erhöhen' im Controller 'Aufzug'. 'Aufzug' ist in 'Gebäude' verschachtelt.Link_to Aktion in verschachtelten Controller?

Welche Routen sollte ich schaffen, oder was link_to url kann ich so

/buldings/2/Aufzüge/4/raise funktioniert?

Danke, Elliot

Antwort

3

Wenn Sie wirklich wollen, zu nisten sie so, hier der Weg ist. Sie haben keine Rails-Version angegeben. Dies ist etwas, das mit neueren Versionen funktioniert, im Gegensatz zu nur in Version 2.3.

map.resources :buildings do |buildings| 
    buildings.resources :elevators, :member => {:up => :put} 
end 

Beachten Sie die Namensänderung für Ihre Aktion. Bitte nennen Sie keine Aktion "erhöhen". Das ist eine Methode im Kernel. Du wirst jemandem ein Aneurisma geben, wenn er versucht, deinen Code zu debuggen.

Sie werden mit einem Pfadhelfer enden, der so aussieht.

up_building_elevator_path(:building_id => 2, :elevator_id => 4) 

Nach den Routen eingerichtet hat, können Sie alle Routen zur Verfügung zu Ihren Aufzügen sehen, indem Sie:

rake -T | grep elevator 
Verwandte Themen