После установки мы хотим добавить подтверждение учетной записи по email. Для этого служит модуль confirmable.
Настройка подтверждения
Devise сгенерировал нам такой класс модели:class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
endВ ней перечислены задействованные модули, confirmable среди них нет. Добавляем:
class User < ActiveRecord::BaseТеперь нужно добавил необходимые поля в таблицу users. Для этого создадим миграцию:
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
end
rails g migration add_confirmable_to_usersПишем код миграции:
class AddConfirmableToUsers < ActiveRecord::MigrationПрименяем миграцию:
def change
add_column :users, :confirmation_token, :string
add_column :users, :confirmed_at, :datetime
add_column :users, :confirmation_sent_at, :datetime
# add_column :users, :unconfirmed_email, :string # Only if using reconfirmable
add_index :users, :confirmation_token, unique: true
# User.reset_column_information # Need for some types of updates, but not for update_all.
# To avoid a short time window between running the migration and updating all existing
# users as confirmed, do the following
end
def down
remove_columns :users, :confirmation_token, :confirmed_at, :confirmation_sent_at
# remove_columns :users, :unconfirmed_email # Only if using reconfirmable
end
end
rake db:migrateТакже нам нужно добавить миграцию для добавления поля unconfirmed_email:
class AddUnconfirmedEmailToUsers < ActiveRecord::Migration
def change
add_column :users, :unconfirmed_email, :string
end
end
Всё. Ссылка на исходники примера.
Комментариев нет:
Отправить комментарий