Rails 4のデータベースに対して、単純なバンドルexec rake db:seedを実行しようとしています。ただし、実行すると、次の出力が表示されます。
********-C02MGBVJFD57:myapp ***********$ bundle exec rake db:seed
Your Gemfile lists the gem factory_girl_Rails (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of just one of them later.
rake aborted!
NameError: uninitialized constant Faker
/Users/**********/workspace/myapp/db/seeds.rb:16:in `block in <top (required)>'
/Users/**********/workspace/myapp/db/seeds.rb:15:in `times'
/Users/**********/workspace/myapp/db/seeds.rb:15:in `<top (required)>'
/Users/**********/.rvm/gems/Ruby-2.1.2@myapp/gems/railties-4.1.4/lib/Rails/engine.rb:543:in `load_seed'
/Users/**********/.rvm/gems/Ruby-2.1.2@myapp/gems/activerecord-4.1.4/lib/active_record/tasks/database_tasks.rb:184:in `load_seed'
/Users/**********/.rvm/gems/Ruby-2.1.2@myapp/gems/activerecord-4.1.4/lib/active_record/railties/databases.rake:173:in `block (2 levels) in <top (required)>'
Tasks: TOP => db:seed
(See full trace by running task with --trace)
これが私のseeds.rbファイルです:
User.create!(
name: "Example User",
email: "[email protected]",
password: "foobar",
password_confirmation: "foobar",
admin: true
)
99.times do |n|
name = Faker::Name.name
email = "example-#{n+1}@railstutorial.org"
password = "password"
User.create!(
name: name,
email: email,
password: password,
password_confirmation: password
)
end
16行目は:
name = Faker::Name.name
このエラーが発生する理由は何ですか?ありがとうございました。
ちょうど同じような問題に直面しました-私は走っていました
Rails g model model_name
エラーを取得する:
uninitialized constant Faker (NameError)
問題は、私がtest
グループにgemを追加したことによるものでした。
それをdevelopment
andtest
グループに配置すると問題が解決しました:
group :development, :test do
# ...
gem 'faker'
# ...
end
Rspecを作成し、スペックファイルにrequire 'faker'
を追加すると、同じ問題が発生しました。