ruby-on-rails - Rails 3 带有斜线和嵌套资源的路线

标签 ruby-on-rails ruby-on-rails-3 routes nested-resources

我在添加斜线段和嵌套路由时遇到问题。

如果我有这些路线:

resources :courses do
  resources :registrations
end

我有这些网址:

/courses/7
/courses/7/registrations

如果我更改 Course.rb 中的 to_param,我可以在 route 发生一些 slugs:

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之后:

如何让它与嵌套资源一起使用:

类(class).rb:

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

路线.rb

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

网址:

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

如果我进行这样的设置,类(class)路线没问题,但注册路线已损坏。

这里有什么提示吗?

最佳答案

尝试添加约束:

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

关于ruby-on-rails - Rails 3 带有斜线和嵌套资源的路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9305563/

相关文章:

ruby-on-rails - 如何在 Ruby 中对获取参数和检查 nil 的代码进行去重

ios - 设计:iOS “Add to Home Screen”

sql - 如何将 SQL 字符串解析为 rails Arel 对象

具有多个 VLAN 的 Linux 部分可达

mysql - 滚动月份的 Rails 或 sql 逻辑

jquery - 删除方法在 Rails 中不起作用

ruby - state_machine ruby​​ gem 中状态的 human_name

ruby-on-rails - Ruby on Rails - 检查提交的表单数据是否与数据库数据匹配

python - Flask:使用 url_for 提供没有前导斜杠的 Assets

php - 如何将变量传递给中间件函数? [SLIM框架]