【发布时间】:2012-01-07 16:30:24
【问题描述】:
我想要,而不是 /user/:id 我希望默认用户路由是 /user:created_at 我能够让 /user:id 工作(没有第二个 /)但是当我尝试做 :created_at我收到一个错误。
有谁知道如何解决这个问题?此外,即使我有match 'users:id', :to => 'users#show', :as => :user, :via => :get /user/1 仍然是一个有效链接,因为我的 config/routes.rb 中有resources :users。有没有办法在rails编译resources :users时删除默认的/user/:id?
【问题讨论】:
-
按照您的要求去做并不难,但是,created at 并不是资源的唯一标识符。如果可以,您应该考虑使用其他字段。
-
哦,字段必须是唯一的?
-
如果两个项目的创建时间相同;资源 /foo/:created_at 应该引用哪个项目?它没有必须是唯一的,但是,如果这些 url 代表一个单一的资源(而不是在此创建的所有项目的集合),则应该是唯一的。
-
我同意@jdeseno 的观点。您需要 100% 确定您在路径中使用唯一 ID,因为这就是您查找记录的方式。您也可以始终将
created_at放在路径中,但它不应该是路径中的唯一 ID。
标签: ruby-on-rails devise routes