我正在尝试运行$ 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 list
和pg 0.15.1
。
任何帮助都非常感谢!
答案 0 :(得分:1)
您将不得不在database.yml中指定Heroku的postgres数据库。
首先,在命令行上:heroku config
应吐出DATABASE_URL: postgres://<username>:<password>@<host>/<database>
将这些值放在database.yml文件中,以便本地环境知道如何连接到Heroku的数据库。
然后,资产预编译应该能够查询生产数据库并编译资产。
显然,不要将其检入版本控制。