2011-01-01 5 views
12

Im Allgemeinen habe ich MenuItems Modell und versuchen zu machen '/ menu_items (/: id (:/some_action))' URLs sieht aus wie '/ Menü (/: id (:/some_action))'Schienen 3 | Routing: Wie umbenennen Sie jetzt den Ressourcentitel?

In Rails 2.3. 5 war es

map.resources :menu_items, :as => :menu, :path_names => { :new => 'add' }

Jetzt in Rails 3.0.3 ich in der Lage bin, es zu handhaben diese riesige Absatz Code

resources :menu_items, :path_names => { :new => 'add' } 
    match 'menu/' => 'menu_items#index', :as => :menu 
    match 'menu/add' => 'menu_items#new', :as => :new_menu 
    match 'menu/:id' => 'menu_items#show', :as => :show_menu 
    match 'menu/:id/edit' => 'menu_items#edit', :as => :edit_menu

Aber es sieht nicht korrekt wegen der sehr großen Menge an Code. Scheint: so funktioniert wie 2nd Rails map.some_name jetzt.

Irgendwelche Hilfe/Vorschläge/Anleitungen? (Danke)

Antwort

26

http://guides.rubyonrails.org/routing.html#customizing-resourceful-routes

resources :menu, :controller => "menu_items", :path_names => { :new => "add" } 

Ausgang ist ganz in der Nähe, was Sie nach:

menu_index GET /menu(.:format)    {:controller=>"menu_items", :action=>"index"} 
      POST /menu(.:format)    {:controller=>"menu_items", :action=>"create"} 
    new_menu GET /menu/add(.:format)   {:controller=>"menu_items", :action=>"new"} 
edit_menu GET /menu/:id/edit(.:format) {:controller=>"menu_items", :action=>"edit"} 
     menu GET /menu/:id(.:format)   {:controller=>"menu_items", :action=>"show"} 
      PUT /menu/:id(.:format)   {:controller=>"menu_items", :action=>"update"} 
      DELETE /menu/:id(.:format)   {:controller=>"menu_items", :action=>"destroy"} 
+0

Vielen Dank! Vermisse es. Genau das brauche ich. – jibiel

+0

Kann der Name as: auch für den neuen Pfadnamen geändert werden? – TheJKFever

13

Ein anderer Weg

resources :menu, :as => :menu_items, :controller => :menu_items 

Dieser Ansatz hat den Vorteil, dass der ausscheidende Hilfsmethoden wie menu_items_path funktionieren immer noch.