2013-02-04 7 views
5

Uruchamiając 'Heroku uruchomić grabie' otrzymuję ten błąd:Heroku run grabie> Nie ma takiego pliku do załadowania - faker

no such file to load -- faker 
/app/lib/tasks/sample_data.rake:1:in `require' 
/app/lib/tasks/sample_data.rake:1:in `<top (required)>' 

mam gem 'oszustem', '0.3.1' w ramach grupy: rozwój ,: testuj w Gemfile.

mam require '' Faker w sample_data.rake

source 'https://rubygems.org' 

gem 'rails', '3.2.11' 
gem 'gravatar_image_tag', '0.1.0' 

group :development, :test do 
    gem 'sqlite3', '1.3.5' 
    gem 'rspec-rails', '2.8' 
gem 'guard-spork', '1.2.0' 
gem 'faker', '0.3.1' 
    gem 'spork', '0.8.4' 
    gem 'will_paginate', '3.0' 
gem 'webrat', '0.7.1' 
gem 'capybara', '1.1.2' 
gem 'annotate', '2.5.0' 
gem 'factory_girl_rails', '1.0' 
end 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '3.2.5' 
    gem 'coffee-rails', '3.2.2' 
    gem 'uglifier', '1.2.3' 
end 

gem 'jquery-rails', '2.0.2' 

group :production do 
    gem 'pg', '0.12.2' 
end 
+1

można proszę podać swój gemfile – gabrielhilal

+1

Właśnie dodałem gemfile do oryginalnego posta –

Odpowiedz

8

Heroku nie instaluje test lub development perełki domyślnie.

Jeśli chcesz załadować fake w produkcji, należy usunąć gem 'faker', '0.3.1' z group :development, :test do i umieścić ją na zewnątrz każdej grupy:

source 'https://rubygems.org' 
    gem 'rails', '3.2.11' 
    gem 'gravatar_image_tag', '0.1.0' 
    gem 'faker', '0.3.1' 

    group :development, :test do 
    gem 'sqlite3', '1.3.5' 
    ... 

Jednakże, jeśli nie chcesz, aby załadować fake, należy upewnić się, że require fake będzie wymagane tylko wtedy, gdy zadanie jest wywoływana:

task :sample_data => :environment do 
    require 'faker' #must be inside the task. 
    ... 
end 

Nadzieję, że to pomaga.

EDIT

Można powiedzieć Bundler nie załadować Gem przez:

gem 'faker', '0.3.1', :require => false 
+0

Umieściłem rake'a poza grupą, tak jak przed napisaniem oryginalnej publikacji. Nadal otrzymuję ten sam błąd. Zrobiłem to ponownie, aby jeszcze raz sprawdzić. –

+0

Czy chcesz załadować 'faker' w swojej produkcji? – gabrielhilal

+0

Nie w produkcji, tylko w fazie rozwoju. –

1

mam ten problem z "Rub on Rails 3 Tutorial". Per gabrielhilals odpowiedzi, fix było przenieść require 'oszustem' do wewnątrz zadania

przed Fix:

require 'faker' 
namespace :db do 
    desc "Fill database with sample data" 
    task :populate => :environment do 
    ... 
    ... 
    end 
end 

po Fix:

namespace :db do 
    require 'faker' 
    desc "Fill database with sample data" 
    task :populate => :environment do 
    ... 
    ... 
    end 
end 
Powiązane problemy