使用Rails_Env将资产预编译为生产

时间:2015-02-15 21:56:02

标签: sql ruby-on-rails ruby-on-rails-4 heroku asset-pipeline

我正在尝试运行$ rake assets:precompile RAILS_ENV=production以便:1)缩小我的资产(遵循以下答案:How do I minify CSS in Rails 4?)和2)使用我的JS中的生产级别变量(即我的JS)有ENV['variable'],当我运行常规rake assets:precompile然后推送到Heroku时,代码运行的是ENV['variable']的开发版本,而不是生产版本。

但是,我遇到了一个出现错误的问题:

rake aborted!
Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add gem 'pg'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).

错误是响应我正在编译的JS文件中的这一行:

var items_to_be_added = [{
  id: '<%= ItemName.where(name:"Jacket").first.id %>',
  name: "Jacket",
  number: 1
}

但奇怪的是我已经安装了heroku run gem listpg 0.15.1

任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:1)

您将不得不在database.yml中指定Heroku的postgres数据库。

首先,在命令行上:heroku config

应吐出DATABASE_URL: postgres://<username>:<password>@<host>/<database>

将这些值放在database.yml文件中,以便本地环境知道如何连接到Heroku的数据库。

然后,资产预编译应该能够查询生产数据库并编译资产。

显然,不要将其检入版本控制。