Проблемы с маршрутизацией в Rails 3 (относящиеся к единственному / множественному числу)

Я читал ресурсы о том, как работает маршрутизация в Rails 3, но столкнулся с некоторыми трудностями.

В моем приложении есть блоги, а мой routes.rb содержит:

  resources :blogs
  root :to => "home#index"

URL-адреса, содержащие «блоги», работают нормально.

Однако я бы хотел, чтобы в URL-адресах был «блог». В частности, / blog /: id (для показа) и / blog (для индекса).

Если я добавлю строку:

match 'blog' => 'blogs#index'

Затем / blog показывает индекс, однако он нарушает мою форму редактирования блога, поскольку URL-адрес действия изменяется с / blog /: id на /blog.:id

Есть идеи о том, как использовать блог вместо блогов, а также разрешить индексирование блога на / blog? Я пробовал довольно много вещей (например, resource: blog, а также resources: blogs,: as => 'blog') и ничего не добился. Предполагая, что есть способ сделать это без ручного определения каждого маршрута для отображения, редактирования, уничтожения и индексации.


person Ben    schedule 09.11.2010    source источник


Ответы (2)


Вам нужно использовать параметр: path

resources :blogs, :path => 'blog'
person shingara    schedule 09.11.2010

Удалите строку match и измените строку resouces на:

resources :blogs, :path => 'blog'

Проверьте: http://edgeguides.rubyonrails.org/routing.html#translated-paths

person Fábio Batista    schedule 09.11.2010