Подтвердить что ты не робот

Rails-рейк-активы: прекомпиляция для производства

Я пытаюсь перекомпилировать активы для моего приложения для развертывания в Heroku, но должен выполнить следующую ошибку.

При запуске:

RAILS_ENV=production bundle exec rake assets:precompile

Ошибка:

/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` (pg is not part of the bundle. Add it to Gemfile.)

Потому что я использую в разработке SQLite и в выпуске Postgresql следующий Gemfile

gem "rails", "~> 3.1.0"

group :production do
  gem 'pg'
end

group :development, :test do
  gem 'sqlite3'
end

gem 'sass-rails', "~> 3.1.0"

group :assets do
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
  gem 'compass', '~> 0.12.alpha.0'
  gem 'html5-boilerplate'
end

Я много пробовал, но не могу заставить это работать.

Я не знаю, важно ли это, но моя database.yml выглядит так:

production:
  adapter: postgresql
  host: localhost
  database: db
  encoding: unicode
  username: user
  password: ''
4b9b3361

Ответ 1

Старый вопрос, но принятый ответ на самом деле не отвечает на вопрос - и я просто нашел это в поиске, поэтому, думаю, это актуально.

Причиной ошибки является то, что gem 'pg' находится в группе производственных камней.
При запуске rake assets:precompile происходит доступ к рабочей среде. Поэтому он пытается загрузить производственную среду , но у вас нет всех зависимостей, установленных.

Запуск RAILS_ENV=production bundle exec rails server, вероятно, даст вам аналогичную ошибку.

Я могу думать о двух разных решениях

1) Посмотрите, есть ли в вашем корневом каталоге файл .bundle/config. Если да, проверьте, говорит ли он WITHOUT :production или аналогичный. Удалите эту строку или весь каталог .bundle и снова запустите bundle.

2) в Gemfile

gem :development, :production do
  gem 'pg'
end

при удалении группы :production снова запустите bundle

Извините, что воспитывал старые вещи...