Jonathan
Jonathan

Reputation: 683

Placing User ID's within Routes with Devise

I currently have a default devise set up and wanting to put the user id's within my logged in routes and leave the others alone such as Welcome,FAQ, About us etc.

Such as www.example.com/user-id/offers

My Current Routes File

  devise_for :users

  mount RailsAdmin::Engine => '/admin', as: 'rails_admin'

  resources :offers do
    member do
       put :tourcomplete
    end   
  end

  resources :categories, only: :show

  root 'welcome#index'

  get '/balance', to: 'balance#show', as: 'balance'

  patch '/balance', to: 'balance#paypal', as: 'balance_paypal'

  patch '/withdraw', to: 'balance#withdraw', as: 'balance_withdraw'

I can't find any docs on this and my previous answer to a similar question was very vague and not helpful.

Thanks

Upvotes: 0

Views: 31

Answers (1)

mohamed-ibrahim
mohamed-ibrahim

Reputation: 11137

You will need to use a nested routes:

resources :users do
  resources :offers do
    member do
       put :tourcomplete
    end   
  end
end

so now your routes will be /users/:id/offers, run rake routes to check your routes.

if you want to exclude users then you will have to specify the route yourself:

match ':user_id/offers' => 'offers#index'

Upvotes: 1

Related Questions