Devise gem is used to make a simple authentication solution in rails.You no need to create authentication form it will create automatically. Like Username, Password, Signin, Signup, Forgot Password and Remember me.Please follow below steps.
10 Steps for Setup Devise gem in rails application :
Step 1: Create a new Ruby on Rails Application
> rails new devexam.
Step 2: Open Gemfile and add the devise gem in Gemfile (devexam/Gemfile)
gem 'devise'
Step 3: Install newly added gem
> bundle install
Step 4: Create the Product form with CRUD using scaffold
> rails g scaffold Product name:string price:integer description:text
Step 5: Apply changes to database.Product table added to database with help of migration.
> rake db:migrate
Step 6: Add below lines to routes.rb (devexam/config/routes.rb)
root 'products#index'
Step 7: Setup the Devise gem
> rails generate devise:install
Step 8: Below command generate the USERS table
> rails generate devise User
Step 9: Apply the table changes to database.
> rake db:migrate
Note : Any error occur means do following steps :
1. Edit the filename in below location (devexam/db/migrate /20141126085540_devise_create_users) and add extension .rb (20141126085540_devise_create_users.rb)
2. Now do migrate.
Step 10: Open ApplicationController and add below line. (devexam/app/controller/application_controller.rb)
class ApplicationController < ActionController::Base protect_from_forgery with: :exception before_action :authenticate_user! end
Step 11: Now run your application
> rails server
Step 12: Add Logout and Edit profile option to your form
Just copy and paste the below code to index.html.erb (devexam/app/views/products/index.html) or any html file
<ul class="nav navbar-nav navbar-right"> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="items"> Account <span class="caret"></span> </a> <ul class="dropdown-menu" aria-labelledby="items"> <li> <% if user_signed_in? %> <strong> <%= current_user.email %></strong> <%= link_to 'Edit profile', edit_user_registration_path, :class => 'navbar-link'%> </li> <li> <%= link_to "Logout", destroy_user_session_path, method: :delete, :class => 'navbar-link' %> </li> <% else %> <li> <%= link_to "Sign up", new_user_registration_path, :class => 'navbar-link'%> </li> <li> <%= link_to "Login", new_user_session_path, :class => 'navbar-link' %> </li> <% end %> </ul> </li> </ul>
Comments
Post a Comment