如何创建第一个(管理员)用户(CanCan和Devise)?

33

我按照Tony的教程在我的Rails 3应用程序中进行了身份验证。

我不想在我的应用程序中进行公共注册,只想使用管理员帐户创建新用户,但我无法手动创建管理员帐户,因为在Users表中有必须生成的加密密码和盐,我不知道如何操作 :|


3
这个问题与 CanCan 有什么关系? - Mark S.
@Mark S... 我不知道。 - james raygan
3个回答

44

你可以在 Rails 控制台上完成此操作。从命令行进入 Rails 应用程序的目录,然后输入 rails console。接着输入以下代码以创建用户:

user=User.create!(:email=>'test@test.com',:username=>'test',:password=>'password')
这将创建一个用户对象(假设您的设备资源名为User)。现在,您可以使用刚刚创建的用户对象来设置管理权限。

当我想访问users/new时,浏览器中出现了模板错误,undefined method 'model',而当我尝试创建新用户时,从控制台中得到ActionView::Template::Error: ActionView::Template::Error和大量文件引用(在评论中复制不好看 :))。 - dormitkon
你的能力模型在哪里?- https://github.com/ryanb/cancan/wiki/defining-abilities - Braden Becker
默认的设备用户模型没有:username字段。 - jaketrent

21

我目前在seeds.rb文件中使用类似以下内容(您的细节可能不同)来创建Devise的管理员用户。

User.new({ :email => 'admin@example.com', :password => 'password', :password_confirmation => 'password'}).save

您可以在终端窗口中使用rake db:seed执行此操作。


18

此外,如果您正在使用confirmable并希望在创建新帐户时跳过确认电子邮件的要求,则可以执行以下操作:

newuser = User.new({ :email => 'admin@example.com', 
          :password => 'password', 
          :password_confirmation => 'password'})
newuser.skip_confirmation!
newuser.save

如果您创建的帐户是信任用户或测试帐户,则此方法非常有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接