Hi Michael,
ich finde es besser, von den benannten Routen Gebrauch zu machen,
insbesondere in Verbindung mit Ressourcen. Diese verhalten sich
aus meiner Erfahrung immer wie erwartet, auch wenn sie etwas
komplizierter gestaltet sind.
Diese benannte Route verwendest du bereits mit ‘admin_websites_path’.
Wenn ‘project’ bei dir auch eine Ressource ist, dann wirst du
auch eine ‘project’ Route haben:
<%= link_to ‘Link’, project_path(123) %> um zum Projekt 123 zu springen.
index ist dann standardmäßig mit
<%= link_to ‘Link’, projects_path %> verbunden (achte auf die Mehrzahl).
Wenn ‘project’ keine Ressource ist, dann macht es eventuell Sinn,
die Route per Hand zu benennen. Benutze dafür statt ‘map.connect’
‘map.sinnvoller_name …’
Über ‘rake routes’ kannst du alle (auch benannten) Routen anzeigen
lassen -
kann bei der Suche nach Problemen hilfreich sein.
Viele Grüße,
Vladimir
–
Vladimir Dobriakov, http://www.innoq.com
Message: 2
Date: Mon, 25 Feb 2008 23:57:49 +0100
From: Michael V. [email protected]
Subject: [Rubyonrails-ug] Routing/link_to
To: “[email protected]” [email protected]
Message-ID: [email protected]
Content-Type: text/plain; charset=“ISO-8859-1”
Hallo,
ich habe ein kleines Problem mit link_to().
Nehmen wir an ich habe 2 Controller einer von beiden mit prefix:
map.resources :websites,
:controller => ‘admin/websites’,
:path_prefix => ‘/admin’,
:name_prefix => ‘admin_’
Und dann noch einen ganz normalen controller ‘projects’, der nicht im
admin
ordner liegt.
Ich springe nun über folgenden link auf die liste alle websites im
admin:
<%= link_to(‘admin websites’, admin_websites_path) %>
http://localhost:3000/admin/websites
Dies rendert mir die index.html.erb, soweit alles super.
Nun möchte ich einen Link zu project/index von der index.html.erb
machen.
Wenn ich folgenden code in die index.html.erb haue
<%= link_to(‘Link’, :controller => ‘project’, :action => ‘index’) %>
Bekomme ich:
http://localhost:3000/admin/project/index
Ich möchte aber kein admin vor projects stehen haben, habe ich eine
Möglichkeit dies weg zubekommen?
Herzliche Grüße,
Michael