Имя сегмента по умолчанию в маршрутизации ресурсов рельсов - PullRequest
3 голосов
/ 08 октября 2008

Я хочу создать маршрут в своем приложении rails по линиям

/panda/blog
/tiger/blog
/dog/blog

где панда, тигр и собака - постоянные ссылки (для класса животных)

Нормальный способ сделать это

map.resources :animals do |animal|
 animal.resource :blog
end

создаст маршруты вдоль линий

/animals/panda/blog
/animals/tiger/blog
/animals/dog/blog

Но я не хочу первый сегмент, так как он всегда будет одинаковым.

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

Ответы [ 2 ]

6 голосов
/ 01 июня 2011

В rails 3.x вы можете добавить path => "" к любому вызову resource или resources, чтобы удалить первый сегмент сгенерированного пути.

resources :animals, :path => ""

$ rake routes

    animals GET    /                   {:action=>"index", :controller=>"animals"}
            POST   /                   {:action=>"create", :controller=>"animals"}
 new_animal GET    /new(.:format)      {:action=>"new", :controller=>"animals"}
edit_animal GET    /:id/edit(.:format) {:action=>"edit", :controller=>"animals"}
     animal GET    /:id(.:format)      {:action=>"show", :controller=>"animals"}
            PUT    /:id(.:format)      {:action=>"update", :controller=>"animals"}
            DELETE /:id(.:format)      {:action=>"destroy", :controller=>"animals"}
1 голос
/ 08 октября 2008

Вы можете использовать этот плагин:

http://github.com/caring/default_routing/tree/master

...