0

我正在尝试使用迁移添加一个设计管理员用户。我尝试使用 --trace 运行以下命令,但没有发现任何问题。我的迁移文件是:

 class InsertAdminUser < ActiveRecord::Migration
  def up
    User.new(:email => "abc@abc.com", :name => "abc", :password => "abc", admin => true)
  end

  def down
    User.delete_all(:email => "abc@abc.com")
  end
end

当我运行 db:migrate 时,它​​运行良好,但未创建用户。

知道为什么它没有创建用户,或者我如何进一步调试?

4

2 回答 2

0

是否有任何特殊原因要在迁移文件中执行此操作?我认为将这种迁移放入种子文件将是一个更明智的解决方案。

将 User.create!(:email => "abc@abc.com", :name => "abc", :password => "abc", admin => true) 放入 seed.rb 并运行 rake db:seed

您还可以创建自定义种子文件,例如,创建 seed_admin.rb 并放置

User.create!(:email => "abc@abc.com", :name => "abc", :password => "abc", admin => true)

创建 delete_admin.rb 并放置

User.delete_all(:email => "abc@abc.com")

然后你可以运行

rake db:seed:seed_admin and rake db:seed:delete_admin

如果您将代码放到 github,请不要忘记将这些敏感文件放入 .gitingore

于 2014-11-27T22:17:25.957 回答
0

代替

User.new(:email => "abc@abc.com", :name => "abc", :password => "abc", admin => true)

User.create!(:email => "abc@abc.com", :name => "abc", :password => "abc", admin => true)

创造!如果未创建记录将引发错误

于 2013-01-30T04:53:21.850 回答