Gem devise
1. gem 'devise'
gem 'bootstrap', '~> 4.0.0.alpha3'
2. Run
$ bundle install
3.
Add Bootstrap’s styles: stylesheets/application.scss
@import "bootstrap";
4. Run the following commands to install Devise, generate a new
User
model,
and copy views for further cutomization:
$ rails generate devise:install
$ rails generate devise User
$ rails generate devise:views
$ rails db:migrate
5. Now restrict access to all pages of the site to authenticated users only:
application_controller.rb =>
class ApplicationController < ActionController::Base
before_action :authenticate_user!
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up) {|u| u.permit(:email,:password,:password_confirmation,:first_name,:last_name,:company_id,:user_role_id,
:start_date,:end_date,:monthly_charge,:notes,:image,:active)}
devise_parameter_sanitizer.permit(:account_update) {|u| u.permit(:email,:password,:password_confirmation,:first_name,:last_name,:company_id,:user_role_id,
:start_date,:end_date,:monthly_charge,:notes,:image,:active, :current_password)}
end
end
6. Add this code to (Layouts/application.html.erb)
<% if user_signed_in? %>
Logged in as <strong><%= current_user.email %></strong>
<%= link_to 'Edit Profile', edit_user_registration_path, :class=>'navbar-link' %> /
<%= link_to 'Logout', destroy_user_session_path, :class=>'navbar-link' %> /
<% else %>
<%= link_to "Sign up", new_user_registration_path, :class=>'navbar-link' %> |
<%= link_to "Login", new_user_session_path, :class=>'navbar-link' %>
<% end %>