2009-07-20 14 views
1

Ich habe ein Seitenmodell und ein Pages Controller in einem Admin-Namespace. Meine Routen-Datei sieht wie folgt aus:Rails Routing für namespaced Ressource löschen

map.resources :pages, :only => [:index,:show] 

    map.resources :admin, :only => [:index] 

    map.namespace :admin do |admin| 
    admin.resources :pages 
    end 

Ich bin nicht in der Lage, die richtige Methode, um herauszufinden, einen Link zum Löschen einer Seite (in gleicher Weise das Gerüst-Generator erzeugt einen Lösch Link auf der Index-Seite) zu erstellen.

Irgendwelche Ideen zu den richtigen Parametern für die Funktion link_to?

TIA, Adam

Antwort

3

rake routes ist dein Freund hier. Es wird die Liste Ihrer generierten Routen ausspucken - besonders nützlich, wenn Sie mehrere verschachtelte oder benutzerdefinierte Routen haben.

werden die Pfade

sein
admin_pages_path #(with GET) routes to :controller => 'admin/pages', :action => 'index' 
admin_pages_path #(with POST) routes to :controller => 'admin/pages', :action => 'create' 
new_admin_page_path #(with GET) routes to :controller => 'admin/pages', :action => 'new' 
edit_admin_page_path(:id) #(with GET) routes to :controller => 'admin/pages', :action => 'edit' 
admin_page_path(:id) #(with GET) routes to :controller => 'admin/pages', :action => 'show' 
admin_page_path(:id) #(with PUT) routes to :controller => 'admin/pages', :action => 'update' 
admin_page_path(:id) #(with DELETE) routes to :controller => 'admin/pages', :action => 'delete' 

Ihre link_to zum Löschen sollte daher sein:

<%= link_to("delete page", admin_page_path(@page), :confirm => "sure you want to delete this page?", :method => :delete) %> 

Beachten Sie, dass Rails seine Magie to_param auf @page Aufruf funktioniert, so dass Sie nicht haben, um @ page.id anzugeben - nützlich für ein Beispiel wie dieses, da Sie häufig Permalinks für 'Seiten' verwenden möchten.

+0

Danke Myles, Ich habe die Ausgabe von Rake-Routen missverstanden. Adam – apchester