我有一些文档(和DocumentsController),它们使用有限的固定类别集进行排序。我希望我的路线考虑到这些类别,所以我的网址看起来像:
/documents/:category/:id
/documents/:category/new
/documents/:category/:id/edit
...依此类推,这应该允许我访问params [:category]以过滤结果。有没有一种简单的方法来实现这一点,仍会生成路径助手?或者我错了这样做?
答案 0 :(得分:2)
在Rails 3中自定义路径并不难。
match '/documents/:id', to: 'documents#show', as: :document
会为您提供路径助手document_path(:id)
。这甚至对于字符串而不是数字的ID也有效,因此将此模式扩展到/documents/:category/:id/edit
应该没有问题。
答案 1 :(得分:2)
您可以提供资源的路径(如您所述):
# config/routes.rb
resources :documents, :path => 'documents/:category'
这会给你以下路线:
/documents/:category
/documents/:category/new
/documents/:category/:id/edit
/documents/:category/:id
在这种情况下,我不确定类别捕获将用于什么目的,因为您可以通过其主键引用文档。此密钥很可能不会在不同类别中重复。