2 votes

Rails 3 routes avec slashs et ressources imbriquées

J'ai des difficultés à ajouter un slug et des itinéraires imbriqués.

Si j'ai ces itinéraires :

resources :courses do
  resources :registrations
end

J'ai ces URL :

/courses/7
/courses/7/registrations

Si je change to_param dans Course.rb, j'obtiens des bouchons dans les routes :

def to_param
  "#{id}-#{slug}"
end

Cela me donne alors :

/courses/7-title-of-course
/courses/7-title-of-course/registrations

Tout va bien jusqu'à présent.

Le problème que je rencontre est le suivant http://www.miguelsanmiguel.com/2011/03/17/slug-that-slash :

Comment faire pour que cela fonctionne avec des ressources imbriquées :

Course.rb :

def to_param
  "#{id}/#{slug}"
end

Routes.rb

resources :courses, :constraints => { :id => /[0-9]+\/.+/ } do
  resources :registrations
end

URL :

/courses/7/title-of-course
/courses/7/title-of-course/registrations

Si je configure les choses de cette manière, l'itinéraire du parcours est correct, mais les itinéraires d'inscription ne fonctionnent pas.

Des conseils ?

2voto

Simpleton Points 2924

Essayez d'ajouter des contraintes :

resources :courses, :constraints => { :id => /.*/ } do
  resources :registrations
end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X