在Rails App启动期间将默认的“admin”用户插入数据库

时间:2010-05-05 00:51:29

标签: ruby-on-rails

我正在构建我的第一个真正的rails应用程序,用于一些内部任务。大多数应用程序任务都需要身份验证/授权。应用程序第一次启动(或以擦除数据库启动),我希望这个过程是:

  1. 用户使用“admin”&amp ;;登录管理面板“admin”用于身份验证信息。

  2. 用户导航到管理员凭据编辑页面,并将名称和密码更改为更安全的内容,以便“admin”& “admin”不再是有效登录。

  3. 要实现此结果,我想填写默认用户名&密码组合到数据库中,如果应用程序启动并检测到'users'表中没有用户凭据。例如:

    if User.count == 0
      User.create(:name => "admin", :password => "admin")
    end
    

    但是,我不确定在哪里放置该代码。我尝试在config / initializers中添加初始化程序脚本,但我收到的错误似乎表明模型类尚未加载到应用程序中。所以我很想知道我可以在什么时候挂钩应用程序启动周期并在调度请求之前通过ActiveRecord将数据插入数据库。

    [编辑] 我应该提到我正在使用Rails 3.0 - 预发行版和Ruby 1.9.2-HEAD。

1 个答案:

答案 0 :(得分:2)

使用seed data。运行rake db:setup以创建数据库,加载架构并加载种子数据。或者,如果已经设置了数据库,则只需运行rake db:seed即可加载种子数据。