Skip to content

Instantly share code, notes, and snippets.

@3h5a9
Created May 17, 2018 06:49
Show Gist options
  • Select an option

  • Save 3h5a9/d6697564b1d722371aef9d5f9c67ceae to your computer and use it in GitHub Desktop.

Select an option

Save 3h5a9/d6697564b1d722371aef9d5f9c67ceae to your computer and use it in GitHub Desktop.
Problem with login and logout link
<nav class="navbar sticky-top navbar-expand-lg navbar-dark bg-danger">
<div class="container">
<%= link_to root_path do%>
<%= image_tag ('Ruby_On_Rails_Logo.svg'), width: 100 %>
<% end %>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ml-auto">
<li class="nav-item active">
<%= link_to 'Home', root_path, class: 'nav-link' %>
</li>
<li class="nav-item">
<%= link_to 'About', about_path, class: 'nav-link' %>
</li>
<li class="nav-item">
<%= link_to 'Contact', contact_path, class: 'nav-link' %>
</li>
<li class="nav-item">
<%= link_to 'Blog', articles_path, class: 'nav-link'%>
</li>
<% if logged_in? %>
<li class="nav-item">
<%= link_to 'Log Out', logout_path, method: :delete, class: 'nav-link'%>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
Dropdown
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
<% else %>
<li class="nav-item">
<%= link_to 'Log In', login_path, class: 'nav-link'%>
</li>
<li class="nav-item">
<%= link_to 'Sign Up', signup_path, class: 'nav-link'%>
</li>
<% end %>
</ul>
</div>
</div>
</nav>
class ApplicationController < ActionController::Base
helper_method :current_user, :logged_in?
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def logged_in?
!!current_user
end
def require_user
if !logged_in?
flash[:danger] = "You must be logged in to perform that action."
redirect_to root_path
end
end
end
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
session[:user_id]
flash[:success] = "You have successfully logged in."
redirect_to user_path(user)
else
flash.now[:danger] = "There was something wrong with the login information."
render 'new'
end
end
def destroy
session[:user_id] = nil
flash[:success] = "You have logged out."
redirect_to root_path
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment