У меня есть Пользователь и Администраторская роль в моем проекте. Я создал свою аутентификацию с Завещанием.
В моей администраторской роли у меня нет подтверждения. В моей модели User у меня есть следующее:
devise :database_authenticatable, :confirmable, :recoverable,
:rememberable, :trackable, :validatable, :timeoutable, :registerable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :username, :prename, :surname, :phone, :street, :number, :location,
:password, :password_confirmation
Моя миграция похожа:
class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users) do |t|
t.database_authenticatable :null => false
t.confirmable
t.recoverable
t.rememberable
t.trackable
t.timeoutable
t.validateable
t.string :username
t.string :prename
t.string :surname
t.string :phone
t.string :street
t.integer :number
t.string :location
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :confirmation_token, :unique => true
add_index :users, :reset_password_token, :unique => true
add_index :users, :username, :unique => true
add_index :users, :prename, :unique => false
add_index :users, :surname, :unique => false
add_index :users, :phone, :unique => false
add_index :users, :street, :unique => false
add_index :users, :number, :unique => false
add_index :users, :location, :unique => false
end
def self.down
drop_table :users
end
end
В моем routes.rb я добавил следующие утверждения:
map.devise_for :admins
map.devise_for :users, :path_names => { :sign_up => "register", :sign_in => "login" }
map.root :controller => "main"
После регистрации пользователя я перенаправляюсь к контроллеру main
с уведомлением флэш-памяти, "Вы подписались успешно", и я зарегистрирован. Но я не хочу быть зарегистрированным, потому что я еще не подтвердил свою новую учетную запись пользователя.
Если я открываю консоль, я вижу в журналах почтовый текст подтверждения, но я уже зарегистрирован. Я не могу объяснить почему. У кого-либо есть идея?
Если я копирую маркер подтверждения от журналов и подтверждаю мою учетную запись, я могу войти в систему, но если я не подтверждаю, я также могу войти в систему.
В config / initializers / devise.rb есть строка для установки времени, в течение которого пользователь должен подтвердить, прежде чем он будет заблокирован.
config.confirm_within = 2.days
Если вы установите значение 0, вы должны получить желаемый результат.