I encountered an error in rails trying to create a nested route in rails 2.x
map.import_time_cards 'users/:user_id/time_cards/import', :controller => 'time_cards', :action => 'import'
Wasn't setting up a route for users because this route was being setup automatically and overwritten by:
map.resources :users, :has_many => [:notes, :addresses, :expenses, :time_cards] , :collection => [:login, :logout, :disable, :enable]
So after digging around on the rails api I discovered that map.resources takes a block so my solution to this problem was :
map.resources(:users, :has_many => [:notes, :addresses, :expenses] , :collection => [:login, :logout, :disable, :enable]) do |user| user.resources :time_cards, :collection => [:import] end
By using a block this tells rails to include route to 'users/1/time_cards/import' instead of appending import as the id for the show route.
map.resources and custom nested routes
Subscribe to SmartLogic Blog
Get the latest posts delivered right to your inbox.
or subscribe via RSS FEED