0

移行を使用して Devise 管理者ユーザーを追加しようとしています。--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 に答える