Rails 3路由带有斜杠和嵌套资源

时间:2012-02-16 04:29:10

标签: ruby-on-rails ruby-on-rails-3 routing nested-resources

我在添加斜线和嵌套路线方面遇到了麻烦。

如果我有这些路线:

resources :courses do
  resources :registrations
end

我有这些网址:

/courses/7
/courses/7/registrations

如果我在Course.rb中更改to_param,我可以在路线中发现一些slu ::

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 个答案:

答案 0 :(得分:2)

尝试添加约束:

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