Ruby on Rails Code

Tutorial Bagaimana Custom Devise Path dan Controller pada Ruby on Rails

Iman Sugirman Iman Sugirman Follow 16 Mar 2019 · 2 mins read
Tutorial Bagaimana Custom Devise Path dan Controller pada Ruby on Rails

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 :

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' }

Dapatkan Email Setiap Minggu

No Spam, No JibJab!
Iman Sugirman

Written by Iman Sugirman Follow

Web Designer & Developer was 4 years experience in Web Development. Have Secret Sauce Recipe for Create Awesome Website