Devise adalah gem service yang dibuat untuk membuat login logout suatu aplikasi menjadi lebih mudah.
Langkah - langkah implementasi
1.Buat rails project baru dan generate database:
$ rails new devise
$ rake db:create
2. Tambahkan gem devise pada gemfile
gem 'devise'
3. Install devise
$ bundle install
$ rails generate devise:install
4. Buat devise model "user"
$ rails generate devise User
5. Run migration
$ rake db:migrate
6. Generate view untuk login dan registrasi
$ rails generate devise:views users
7. Generate controller devise users
$ rails generate devise:controllers users
8. Konfigurasi routes untuk login dan registrasi #config/routes.rb
devise_for :users, controllers: { sessions: 'users/sessions' }
devise_scope :user do
get 'sign_in', to: 'devise/sessions#new'
get '/users/sign_out' => 'devise/sessions#destroy'
end
resources :homes
root to: 'homes#index'
9. Generate controller home dan tambahkan code dibawah
$ rails g controller homes
#controllers/homes_controller.rb
class HomesController < ActionController::Base
before_action :authenticate_user!
def index
end
end
buat file homes pada folder views lalu tambahkan file index.html.erb
#views/homes/index.html.erb
<h3>Hello World</h3>
<%= link_to "Logout", destroy_user_session_path, method: :delete, :class => 'navbar-link' %>
10.Jalankan server
$ rails s
11. Buka urlhttp://localhost:3000/users/sign_up
http://localhost:3000/users/sign_in
kurang lebih hasilnya akan seperti ini:
form sign up:
form login:
untuk selebihnya mengenai gem devise bisa klik link dibawah ini:
selamat mencoba & happy coding :)