Tutorial Bagaimana Custom Devise Path dan Controller pada Ruby on Rails
Write by Iman Sugirman

Ruby on Rails telah dikembangkan pada tahun 2003 oleh David Heinemeier Hannson dan sejak saat itu diperluas oleh Rails Core Team dan lebih dari 3700 kontributor.
Ruby on Rails menyediakan beberapa gem
untuk Autentikasi. Contohnya adalah :
- Devise Github Star : 19.013
- Sorcery Gems Github Star : 565
- Clearance Github Star : 2.927
Dan yang paling banyak digunakan adalah Devise
, Selain Mudah Devise
jg bisa dikatakan sangat gampang untuk dikembangkan. Bayangkan saya ketika anda ingin mengintegrasikan dengan Platform lain misalnya Social Media bisa diintegrasikan dengan OmniOuth
Cara Menginstall Devise di Ruby on Rails 5.2
Mudah saja, hanya menambahkan baris
...
gem "devise"
...
pada Gemfile
anda. Dan masukan perintah
bundle install
Jangan Lupa install Devise dengan cara memasukan perintah :
rails g devise:install
Generate User Model Default dari Devise, biasanya dengan model User
:
rails g devise User
Sesuaikan Model
anda sesuai dengan kebutuhan dan Database
anda sesuai dengan kebutuhan. Biasanya saya aktifkan mode Konfirmasi Email untuk setiap pendaftar :
Ubah Model User
class User < ActiveRecord::Base
devise :database_authenticatable,
:registerable,
:confirmable,
:recoverable,
:rememberable,
:trackable,
:validatable
end
Ubah File Database
## Confirmable
t.string :confirmation_token
t.datetime :confirmed_at
t.datetime :confirmation_sent_at
t.string :unconfirmed_email # Only if using reconfirmable
## Lockable
t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
t.string :unlock_token # Only if unlock strategy is :email or :both
t.datetime :locked_at
maka uncomment semua baris diatas
Lalu migrasikan database dengan cara :
rails db:migrate
Generate View dari Setelan Default Devise
rails g devise:views
Ubah routes.rb
di folder config
dengan menuliskan beberapa baris seperti :
devise_for :users,
:path => "",
:path_names => {
:sign_in => 'login',
:sign_out => 'logout',
:password => 'secret',
:confirmation => 'verification',
:unlock => 'unblock',
:registration => 'register',
:sign_up => 'cmon_let_me_in' }