Неинициализированная константа Faker :: Ресторан в граблях - PullRequest
0 голосов
/ 21 сентября 2018

Я установил грабли для заполнения своей базы данных, и, хотя все, кажется, на месте, похоже, он не может найти Faker.

Рейк-задача:

require 'faker'

desc 'Populate db'
task :popdb => [:environment] do 
    puts 'Generating categories...'

    5.times do
        category = Category.create(title: Faker::Restaurant.name)
        puts "Created category \"" + category.title + "\""
        50.times do
            card = Card.create(
                retailer: Faker::Company.name,
                category: category,
                offer_type: Faker::Company.buzzword,
                first_purchase: Faker::Company.industry,
                credit_limit: Faker::Number.between(10, 50) * 10
                )
            puts "Created card \"" + card.title + "\""
        end
    end
end

Gemfile:

  source 'https://rubygems.org'

git_source(:github) do |repo_name|
  repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
  "https://github.com/#{repo_name}.git"
end

gem 'devise', '~> 4.2'
gem 'pg'
gem 'rails', '~> 5.1.6'
gem 'puma', '~> 3.7'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'activeadmin'

group :development, :test do
  gem 'rspec-rails'
  gem 'factory_bot_rails'
  gem 'shoulda-matchers', '~> 3.1'
  gem 'faker'
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  gem 'web-console', '>= 3.3.0'
  gem 'better_errors'
  gem 'binding_of_caller'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

Я использую последнюю версию Faker, и у меня есть гем, включенный в среду тестирования и разработки.Что мне не хватает?Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Вы фактически используете гем на rubygems.org, версия которого 1.9.1 - 11 июля 2018 года , но Faker :: Restaurant был добавлен в 18 июля и может быть доступен вследующая версия на rubygems.org.

(см. https://github.com/stympy/faker/blob/master/doc/restaurant.md)

Как предложено в приведенном выше комментарии, используйте:

gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'

. Вместо этого вы загрузите гем с github.rubygems.org

0 голосов
/ 21 сентября 2018

Примечание:

Если вы получаете ошибку uninitialized constant Faker::[some_class], ваша версия драгоценного камня отстает от той, что описана здесь.Чтобы удостовериться, что ваш драгоценный камень является тем, что задокументирован здесь, измените строку в вашем драгоценном файле на:

gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'

https://github.com/stympy/faker#installing

...