Rails: настроить Devise Confirmable модуль? - PullRequest
3 голосов
/ 14 декабря 2010

У меня установлено приложение Rails с Devise , но оно все еще находится в стадии разработки. У меня также есть задача Thor, которая создает администратора по умолчанию.

Проблема в том, что Devise не позволит этому администратору войти на сайт, пока учетная запись не будет подтверждена. Можно ли как-то отключить подтверждающий модуль для создания определенных пользователей, например, Admin?

Моя задача Тора:

class Setup < Thor
  desc "create_admin [EMAIL] [PASSWORD]", "Creates the administrative user."
  def create_admin(email = "admin@bogus.com", password = "testpassword123")
    require File.expand_path('config/environment.rb') # load Rails environment
    admin = User.create(:email => email, :password => password, :password_confirmation => password)
    admin.assign_role :admin
    puts "Admin user (#{ email }) created."
  end
end

Ответы [ 3 ]

6 голосов
/ 23 декабря 2010

После того, как ваш пользователь создан, вы можете вызвать предоставленное устройство, подтвердить! метод, а не обновление базы данных напрямую. Eg.:

admin = User.create(:email => email, :password => password, :password_confirmation => password)
admin.assign_role :admin
admin.confirm!
2 голосов
/ 14 декабря 2010

Это должно сработать

admin = User.create(:email => email, :password => password, :password_confirmation => password)

Итак, ваш подтвержденный_ат установлен, то есть поле, на которое указывает устройство, когда проверяется подтверждение пользователя.

РЕДАКТИРОВАТЬ

Простите, если это похоже на взлом, но это работает для меня.После выполнения вышеуказанной строки,

admin.update_attributes(:confirmed_at => Time.now)
0 голосов
/ 14 декабря 2010

просто комментарий :confirmable в модели пользователя или администратора

devise :database_authenticatable, :recoverable, :rememberable, :trackable, #:confirmable...

В config / inicializers / devise.rb вы можете указать здесь, сколько времени пользователь должен подтвердить свою учетную запись

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...