ruby-on-railsdeviseshow

Creating a `Users` show page using Devise


I'm trying to create a User show page (that will function as a profile page) but am confused about how to do this with Devise. It doesn't seem as though Devise comes with any sort of show definition - is there any way I can access the controllers Devise is implementing in order to make one or do I have to override them?


Solution

  • You should generate a users_controller which inherits from application_controller and define there your custom show method. Don't forget to create a view and routes for it. Ex:

    #users_controller.rb
    def show
      @user = User.find(params[:id])
    end
    
    #in your view
    <%= @user.name %>
    
    #routes.rb
    match 'users/:id' => 'users#show', via: :get
    # or 
    get 'users/:id' => 'users#show'
    # or
    resources :users, only: [:show]