Rails 3 маршрутизация: настройка ресурсоемкого маршрута - PullRequest
1 голос
/ 13 сентября 2011

У меня есть несколько Documents (и DocumentsController), которые отсортированы с использованием ограниченного, фиксированного набора категорий.Я бы хотел, чтобы мои маршруты учитывали эти категории, поэтому мои URL будут выглядеть так:

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

... и т. Д., Что позволит мне получить доступ к params [: category] дляфильтровать результаты.Есть ли простой способ добиться этого, , который все равно будет генерировать помощники пути ?Или я ошибаюсь, если так поступаю?

Ответы [ 2 ]

2 голосов
/ 13 сентября 2011

Вы можете указать путь к ресурсу (как вы упомянули):

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

Это даст вам следующие маршруты:

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

Я не уверен в этом случаекакой цели будет служить захват категории, поскольку вы можете ссылаться на документ по его первичному ключу.Этот ключ, скорее всего, не повторяется по категориям.

2 голосов
/ 13 сентября 2011

Нетрудно настроить пути в Rails 3.

match '/documents/:id', to: 'documents#show', as: :document даст вам помощник пути document_path(:id).Это будет работать даже для идентификатора, который является строкой, а не числом, поэтому расширение этого шаблона до /documents/:category/:id/edit не должно быть проблемой.

...