0
votes

I am trying to understand how to set new routes, however what I have chosen doesn't work and it just shows a "No route matches [GET] "/users/18/settings"".

What I would like to do is create a /settings that will display all the information users entered on the register page /users/new and shown on /users/ID/edit

routes.rb:

 Dating::Application.routes.draw do
  get 'signup' => 'users#new'
  get 'login' => 'sessions#new'
  get 'logout' => 'sessions#destroy'
  get 'edit' => 'users#edit'
  get "/profile/:id" => "users#show"
  get "profile/:id/settings" => 'users#edit'
  get 'settings', on: :member
  match 'settings' => 'users#settings'

  resources :users do
  resources :sessions
  resources :password_resets
  resources :galleries
  resources :photos

  root to: 'users#new'
  root to: 'galleries#index'

end end

rake routes:

settings_user GET /users/:id/settings(.:format) users#settings GET /users(.:format) users#index POST /users(.:format) users#create GET /users/new(.:format) users#new GET /users/:id/edit(.:format) users#edit GET /users/:id(.:format) users#show PUT /users/:id(.:format) users#update DELETE /users/:id(.:format) users#destroy root / users#new

   settings        /settings(.:format)                 users#settings
      users GET    /users(.:format)                    users#index
            POST   /users(.:format)                    users#create
   new_user GET    /users/new(.:format)                users#new
  edit_user GET    /users/:id/edit(.:format)           users#edit
       user GET    /users/:id(.:format)                users#show
            PUT    /users/:id(.:format)                users#update
            DELETE /users/:id(.:format)                users#destroy
   sessions GET    /sessions(.:format)                 sessions#index
            POST   /sessions(.:format)                 sessions#create
new_session GET    /sessions/new(.:format)             sessions#new

edit_session GET /sessions/:id/edit(.:format) sessions#edit session GET /sessions/:id(.:format) sessions#show PUT /sessions/:id(.:format) sessions#update DELETE /sessions/:id(.:format) sessions#destroy

1
Could you do either get 'settings' => 'settings#whatever' or resources :settings. Not sure if I'm understanding your question correctly. - Paul Richter
Could you, please, provide output of rake routes? - Sergey Alekseev

1 Answers

2
votes

Try

resources :users do  
    get 'settings', on: :member  
end

for /users/18/settings
and

match 'settings' => 'users#settings'

for /settings.