2016-08-09 11 views
1

rake db:seedを使用してシードデータをデータベースに取り込もうとしていますが、何らかの理由でこのエラーが発生します。注:検証チェックをバイパスする必要があります。バリデーションが失敗したレイクシード

01_user.rb 
user = User.new([ 
    {id: 6, email: "[email protected]"}, 
    {id: 7, email: "[email protected]"} 
]) 

user.save!(validate: false) 

私は入れませんエラー:

$ bundle exec rake db:seed RAILS_ENV=test 
rake aborted! 
ArgumentError: When assigning attributes, you must pass a hash as an argument. 

これが起こって、どのようにそれを修正することですなぜ上の任意の指導?

答えて

1

Userモデルのnewメソッドにハッシュの配列を渡しています。あなたは代わりにこれらのハッシュのそれぞれにループする必要があります。

[ 
    {id: 6, email: "[email protected]"}, 
    {id: 7, email: "[email protected]"} 
].each do |user_attributes| 
    user = User.new(user_attributes) 
    user.save!(validate: false) 
end 

私はあなたががid属性を上書きすることができるとは思いません。

0

あなたもこれを試すことができます。

email_list = ["[email protected]", "[email protected]"] 

email_list.each do |email_address| 
    User.create(email: email_address) 
end 
関連する問題