Rails 3 маршрута с косой чертой и вложенными ресурсами - PullRequest
2 голосов
/ 16 февраля 2012

У меня проблемы с добавлением косой черты и вложенных маршрутов.

Если у меня есть эти маршруты:

resources :courses do
  resources :registrations
end

У меня есть следующие URL:

/courses/7
/courses/7/registrations

Если я поменяю to_param в Course.rb, я могу получить несколько слагов, происходящих на маршрутах:

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

Это тогда дает мне:

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

Пока все хорошо.

Проблема, с которой я столкнулся, заключается в том, что я смотрю на это http://www.miguelsanmiguel.com/2011/03/17/slug-that-slash:

Как мне заставить это работать с вложенными ресурсами:

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

Если я так настрою, маршрут курса будет в порядке, но маршруты регистрации нарушены.

Здесь есть какие-нибудь советы?

1 Ответ

2 голосов
/ 16 февраля 2012

Попробуйте добавить ограничения:

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