Rails:通过迁移创建默认root用户?耙任务?

nee*_*zer 0 migration rake ruby-on-rails rails-authorization authlogic

我在Heroku上测试我的应用程序(这太棒了!)我意识到我无法创建我的root用户.

我正在使用Authlogic和rails_authorization_plugin.

有没有我可以在我的一个迁移文件中添加一个部分来添加此用户并为其分配角色root?或者我可以通过rake任务执行此操作吗?

任何见解将不胜感激!

Emi*_*ily 5

你当然可以通过迁移来实现它,我已经看到这是一种向应用程序的数据库添加必要的种子数据的推荐方法.迁移只是ruby代码,所以它非常简单.您可以使用您习惯的所有ActiveRecord内容,并执行以下操作:

class AddRootUser < ActiveRecord::Migration
  def self.up
    user = User.create!( :email => '...', :login => 'root', :password => '...' )
  end

  def self.down
    user = User.find_by_login( 'root' )
    user.destroy
  end
end
Run Code Online (Sandbox Code Playgroud)

我已经离开了你可能会想去做抢救未能创建用户,等事情还有,我没有使用过AuthLogic所以我并不确切地知道它的用户模型是如何工作的,但你应该能够从这里弄清楚.

另一种常见模式是使向下迁移完全清除表,并在运行之前向上迁移调用向下迁移.但是,在这种情况下,这可能不是你想要的.