我的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
答案 0 :(得分:6)
创建用户后,您可以致电设备确认!方法而不是直接更新数据库。例如:
admin = User.create(:email => email, :password => password, :password_confirmation => password)
admin.assign_role :admin
admin.confirm!
答案 1 :(得分:2)
这应该有效
admin = User.create(:email => email, :password => password, :password_confirmation => password)
因此,您的confirmed_at已设置,这是检查用户确认时的字段设计。
修改强>
请原谅我,如果这看起来像是一个黑客,但这似乎对我有用。执行上述行后,
admin.update_attributes(:confirmed_at => Time.now)
答案 2 :(得分:-1)
只需在用户或管理模式
中注释:confirmable
devise :database_authenticatable, :recoverable, :rememberable, :trackable, #:confirmable...
在config / inicializers / devise.rb中 您可以在此设置用户必须确认其帐户的时间