Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialDrew Konopasek
5,055 PointsLink to 'My Profile' page
Hey everyone I am trying to add a link to my ruby application that will go to a current user's profile page that is logged in
<li> <%= link_to "My Profile", profiles_show_path %> </li>
<% if logged_in? %>
When i type rake routes profiles_show is what comes up as the command. However when I add this code I keep getting a page does not exist alert. What do I need to add to this code in order for a current user to be able to look at his or her profile by clicking on the link? Thank you so much!
4 Answers
Maciej Czuchnowski
36,441 PointsYou have to pass something as an argument to the profiles_show_path. If you're using Devise, maybe profiles_show_path(current_user)
will work, although I never tried that. Also, it depends how your controller looks like.
Drew Konopasek
5,055 PointsPrefix Verb URI Pattern Controller#Action
profiles_show GET /profiles/show(.:format) profiles#show
login GET /login(.:format) user_sessions#new
logout DELETE /logout(.:format) user_sessions#destroy
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
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
username_index GET /username(.:format) username#index
POST /username(.:format) username#create
new_username GET /username/new(.:format) username#new
edit_username GET /username/:id/edit(.:format) username#edit
username GET /username/:id(.:format) username#show
PATCH /username/:id(.:format) username#update
PUT /username/:id(.:format) username#update
DELETE /username/:id(.:format) username#destroy
user_sessions POST /user_sessions(.:format) user_sessions#create
new_user_session GET /user_sessions/new(.:format) user_sessions#new
password_resets POST /password_resets(.:format) password_resets#create
new_password_reset GET /password_resets/new(.:format) password_resets#new
edit_password_reset GET /password_resets/:id/edit(.:format) password_resets#edit
password_reset PATCH /password_resets/:id(.:format) password_resets#update
PUT /password_resets/:id(.:format) password_resets#update
views GET /views(.:format) views#index
POST /views(.:format) views#create
new_view GET /views/new(.:format) views#new
edit_view GET /views/:id/edit(.:format) views#edit
view GET /views/:id(.:format) views#show
PATCH /views/:id(.:format) views#update
PUT /views/:id(.:format) views#update
DELETE /views/:id(.:format) views#destroy
root GET / views#index
terms GET /terms(.:format) static_pages#terms
GET /:id(.:format) profiles#show
Drew Konopasek
5,055 PointsClass ProfilesController < ApplicationController
def show
@user = User.find_by_username(params[:id])
if @user
@views = @user.views.all
render action: :show
else
render file: 'public/404', status: 404, formats: [:html]
end end end
Drew Konopasek
5,055 PointsHi Maciej I am using Bcrypt for the user system. I have tried (current_user) before and it takes me to a 404 page. I have also tried user_path(current_user), but that takes me to a page that shows all the users settings not his or her actual profile page.