2013-02-04 26 views
5

Khi chạy 'Heroku chạy cào' Tôi nhận được lỗi này:Heroku chạy cào> không có tập tin để tải - kẻ giả mạo

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)>' 

Tôi có viên ngọc 'kẻ giả mạo', '0.3.1' dưới nhóm: phát triển ,: test làm trong Gemfile.

Tôi có require 'kẻ giả mạo' trong 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

bạn có thể xin vui lòng bao gồm gemfile bạn – gabrielhilal

+1

Tôi chỉ đã thêm gemfile vào bài đăng gốc –

Trả lời

8

Heroku không cài đặt test hoặc development đá quý theo mặc định.

Nếu bạn muốn tải fake trong sản xuất của bạn, bạn nên loại bỏ gem 'faker', '0.3.1' từ group :development, :test do và đặt nó bên ngoài bất kỳ nhóm:

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' 
    ... 

Tuy nhiên, nếu bạn không muốn tải fake, bạn phải đảm bảo rằng chỉ cần yêu cầu require fake của bạn khi nhiệm vụ được gọi:

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

Hy vọng điều đó sẽ hữu ích.

EDIT

Bạn có thể nói Bundler để không nạp Gem bởi:

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

Tôi đã đặt người làm bánh ngoài nhóm như bạn đã nói trước khi tôi đăng bài gốc. Tôi vẫn nhận được lỗi tương tự. Làm lại lần nữa để kiểm tra lại. –

+0

Bạn có muốn tải 'faker' vào sản xuất của mình không? – gabrielhilal

+0

Không có trong sản xuất, chỉ phát triển. –

1

Tôi có vấn đề này với "Chà on Rails 3 Hướng dẫn". mỗi gabrielhilals câu trả lời, việc sửa chữa là để di chuyển require 'kẻ giả mạo' vào bên trong nhiệm vụ

trước khi sửa chữa:

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

sau khi sửa chữa:

namespace :db do 
    require 'faker' 
    desc "Fill database with sample data" 
    task :populate => :environment do 
    ... 
    ... 
    end 
end 
Các vấn đề liên quan