Listing & Editing Profile Pages -

I am relatively new to this and completely lost. I'm trying to make a user's profile page. If the user is an admin, they can see all the users, as well as access and edit/update each user's profile page.

I finally got it to work...but when I logged in as a user I received several errors which can be noted in the accompanying jpgs.

The first jpg is the url that I am assuming the user will go to for their profile page.

The second jpg (User-Index) is the error I get when I try to access the index page as a non-admin.

The third jpg (User-Edit) is the error I get when I try to access the Edit page for a user account as a non-admin.

The project can be found at: GitHub - GBressler/esl-site

Any help that could be proved on these issues would be greatly appreciated.

Here is my Users Controller:

class UsersController < ApplicationController before_action :set_user, only: [:show, :edit, :update, :destroy]

  def index     if current_user.id == 1       @users = User.all     else       render 'profile_page'     end   end

  def show     render 'profile_page'     authorize! :show, @user     @user = User.find(params[:id])     current_user.first_name   end

  def update   end

  def edit     authorize! :edit, @user   end

  def destroy   end

  private

    def set_user      @user = User.find(params[:id])     end

  def user_params     params.require(:user).permit(:id, :first_name, :last_name, :email, :username)   end end

Here's the code for my yet-to-be developed Edit and Profile Page: <h1>hi</h1>

<p><%= @user.username %></p>

Here's the code for the index page that the admin sees:

<h1>Listing users</h1> <!-- START_HIGHLIGHT --> <% if notice %> <p id="notice"><%= notice %></p> <% end %> <!-- END_HIGHLIGHT -->

<table>   <thead>     <tr>       <th>Name</th>       <th>Username</th>       <th></th>       <th></th>     </tr>   </thead>

  <tbody>     <% @users.each do |user| %>       <tr>         <td><%= user.first_name %></td>         <td><%= user.username %></td>         <td><%= link_to 'Show', user %></td>         <td><%= link_to 'Edit', edit_user_path(user) if can?(:edit, user)%></td>         <td><%= link_to 'Destroy', user, method: :delete,         data: { confirm: 'Are you sure?' } %></td>       </tr>     <% end %>   </tbody>

</table>

Attachments: http://www.ruby-forum.com/attachment/11128/nonadmin-user-page.jpg http://www.ruby-forum.com/attachment/11129/User-Index.jpg http://www.ruby-forum.com/attachment/11130/User-Edit.jpg

I am relatively new to this and completely lost. I'm trying to make a user's profile page. If the user is an admin, they can see all the users, as well as access and edit/update each user's profile page.

I finally got it to work...but when I logged in as a user I received several errors which can be noted in the accompanying jpgs.

Please don't post images, copy/paste the error here from the server terminal window (which is often more informative than the browser display).

The first jpg is the url that I am assuming the user will go to for their profile page.

Where did you get that code for application_controller? It is not correct. Go back to wherever you got it from and check it carefully. I imagine PRESENT? should be present?

The second jpg (User-Index) is the error I get when I try to access the index page as a non-admin.

As the error says, @user is nil.

The third jpg (User-Edit) is the error I get when I try to access the Edit page for a user account as a non-admin.

This is the same error as the first one.

Colin

Ruby is case-sensitive. In your first jpeg, change the `PRESENT?` method to `present?` (on line 16 of your UsersController file)

Your second jpeg is showing that you haven't initialized your @user object in the index action. You can initialize it in the UsersController file, in the `index` method.

In your last jpeg, the error is the same error as the first jpeg.

Thanks, Christian. you've given me some things to consider, but Present? is only in the error message, not in my code. Things seem to work a little better if I comment out the authorize! line in my show and edit methods, but then the sign out seems to break as well as the dynamic elements of my profile page (including the admin pages). I am not sure how to proceed.

My error was that I overlooked adding authorization for User in my CanCan ability.rb file. It fixes most of my errors, but still leaves my with the problem of not being able to sign out or having the dynamic elements of my html.erb pages work.

Have a look at line 16 in

Colin