1

我有一些文档(和一个 DocumentsController),它们使用有限的固定类别集进行排序。我希望我的路线考虑这些类别,所以我的网址看起来像:

/documents/:category/:id
/documents/:category/new
/documents/:category/:id/edit

...等等,这应该允许我访问 params[:category] ​​以过滤结果。有没有一种简单的方法来实现这一点,仍然会生成路径助手?或者我这样做错了?

4

2 回答 2

2

在 Rails 3 中自定义路径并不难。

match '/documents/:id', to: 'documents#show', as: :document会给你路径助手document_path(:id)。这甚至适用于作为字符串而不是数字的 ID,因此将此模式扩展到/documents/:category/:id/edit应该没有问题。

于 2011-09-13T13:38:36.917 回答
2

您可以提供资源的路径(如您所述):

# config/routes.rb
resources :documents, :path => 'documents/:category'

这将为您提供以下路线:

/documents/:category
/documents/:category/new
/documents/:category/:id/edit
/documents/:category/:id

在这种情况下,我不确定类别捕获的用途是什么,因为您可以通过其主键引用文档。该键很可能不会跨类别重复。

于 2011-09-13T13:50:27.307 回答