2010-01-29 4 views
0

J'ai un modèle Store. Et deux contrôleurs:Routage de routage avec différents contrôleurs pour la même ressource résolvant la "mauvaise" URL

  • stores_controller
  • admin/stores_controller

maintenant dans la vue de la liste de l'admin/stores_controller Je suis en train de générer un lien vers l'action détruire dans l'admin/stores_controller mais Toutes les variantes que j'ai essayées vont soit à stores_controller (donc pas à l'admin) ou à une autre URL incorrecte.

Je currenty utilise

<%= link_to "Delete", :controller => "admin/stores", 
      :action => "destroy", :id => store, :method => :delete %> 

mais cela génère une URL comme http://localhost:3000/admin/stores/5?method=delete qui appelle l'action show au lieu de la détruire un.

dans routes.rb Je

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

map.resources :stores 

Comment puis-je résoudre ce problème?

Répondre

1

Lorsque vous avez un espace de noms, utilisez link_to comme ceci:

link_to 'Show', [:admin, @var] 

De même, si vous souhaitez référencer un formulaire:

form_for([:admin, @var]) 

etc.