2011-08-29 5 views
3

J'ai besoin d'aide pour les routes. Voici mes routes actuelles.Rails 3 routes emboîtées question

resources :users, :only => [:index, :show, :create, :destroy] do 
    resources :links, :only => [:create, :destroy], :shallow => true, :on => :member 
end 

et quand je lance des itinéraires de râteau je reçois ce

root    /(.:format)      {:controller=>"users", :action=>"index"} 
    user_links POST /users/:user_id/links(.:format) {:action=>"create", :controller=>"links"} 
    link  DELETE /links/:id(.:format)   {:action=>"destroy", :controller=>"links"} 
    users  GET /users(.:format)    {:action=>"index", :controller=>"users"} 
       POST /users(.:format)    {:action=>"create", :controller=>"users"} 
    user  GET /users/:id(.:format)   {:action=>"show", :controller=>"users"} 
       DELETE /users/:id(.:format)   {:action=>"destroy", :controller=>"users"} 

mais je suis en train de faire mes voies soient ce qui est ce que j'avais mais je ne me souviens pas comment je suis arrivé à travail. :(

root    /(.:format)      {:controller=>"users", :action=>"index"} 
    user_links POST /users/:user_id/links(.:format) {:action=>"create", :controller=>"users/links"} 
    link   DELETE /links/:id(.:format)   {:action=>"destroy", :controller=>"users/links"} 
    users  GET /users(.:format)    {:action=>"index", :controller=>"users"} 
       POST /users(.:format)    {:action=>"create", :controller=>"users"} 
    user   GET /users/:id(.:format)   {:action=>"show", :controller=>"users"} 
       DELETE /users/:id(.:format)   {:action=>"destroy", :controller=>"users"} 

Qu'est-ce que je fais mal Qu'est-ce que je manque

Edit:?..

Je suppose que ce qui précède ne dit pas vraiment beaucoup les différences dans les routes est ce

user_links POST {:action=>"create", :controller=>"links"} 
    link  DELETE {:action=>"destroy", :controller=>"links"} 


    user_links POST {:action=>"create", :controller=>"users/links"} 
    link  DELETE {:action=>"destroy", :controller=>"users/links"} 

Peut-être que cela vous aidera un peu.

+0

je ne vois pas la différence routes? Qu'essayez-vous d'accomplir avec cela? –

+0

Je veux que les ressources de liens à utiliser puissent utiliser l'utilisateur et le contrôleur de liens. '{: action =>" créer ",: controller =>" users/links "}' et '{: action =>" détruire ",: controller =>" utilisateurs/liens "}' versus '{: action => "create",: controller => "liens"} 'et' {: action => "destroy",: controller => "liens"} ' –

+0

voir la réponse à la question similaire: http://stackoverflow.com/ a/11849385/317884 –

Répondre

1

Essayez cette première, supprimez toutes les options routes.r b

resources :users do 
    resources :links, :module => 'users' 
end 
+0

Merci, mais cela se traduit toujours par les mêmes routes. –