2009-07-20 3 views
1

J'ai un modèle de page et un controleur de pages dans un espace de nom d'administrateur. Mon fichier itinéraires ressemble à ceci:Routage des routages pour la suppression de ressources avec espace de noms

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

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

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

Je ne suis pas en mesure de déterminer la bonne méthode pour créer un lien pour la suppression d'une page (De la même manière le générateur d'échafaudage génère un lien de suppression sur la page d'index).

Des idées sur les paramètres corrects pour la fonction link_to?

TIA, Adam

Répondre

3

rake routes est votre ami ici. Il va cracher la liste de vos routes générées - particulièrement utile si vous avez un tas de routes imbriquées ou personnalisées.

les chemins seront

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' 

Votre link_to pour suppression devrait donc être:

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

Notez que Rails sa magie appelant to_param sur @page, de sorte que vous n'avez pas pour spécifier @ page.id - utile pour un exemple comme celui-ci car vous voulez souvent utiliser des permaliens pour les 'pages'.

+0

Merci Myles, Je ne comprenais pas la sortie des routes rake. Adam – apchester

Questions connexes