在Heroku部署上,Rails配置失败

时间:2019-03-14 20:35:28

标签: ruby-on-rails heroku

我已经阅读了所有在这里可以找到的评论和问题,但似乎没有一个适合我的情况。我有一个Ruby on Rails后端,React前端可以很好地部署,直到我添加了管理员使用ActiveRecord通过CSV文件更新数据库的功能。

当我按下Heroku时,我会收到两个警告:

  

######警告:检测导轨配置失败   
#####警告:我们检测到该系统上不存在使用Active Storage的所有预览功能所需的某些二进制依赖性。

我已经阅读了有关Heroku上主动存储的Heroku文章,但是仍然无法解决问题。

尝试在Rails控制台上进行故障排除时,出现以下错误,可能是罪魁祸首:

  

/app/vendor/bundle/ruby/2.5.0/gems/aws-partitions-1.144.0/lib/aws-partitions/endpoint_provider.rb:82:在partition_matching_region的块中:无法加载Rails.config.active_storage .service:(NoMethodError)   nil:NilClass的未定义方法匹配

有人对此问题有见识吗?我遇到了其他人正在发现的东西:这些错误消息中有些对我而言不是最有见地的。谢谢!

3 个答案:

答案 0 :(得分:1)

您需要安装Heroku的ActiveStorage Previews Buildpack:

heroku buildpacks:add -i 1 https://github.com/heroku/heroku-buildpack-activestorage-preview

这将安装生成资产预览所需的二进制工具。可在此处获得更多信息:

答案 1 :(得分:0)

enter image description here似乎是您的问题:

  

这表示您尚未配置区域。要配置区域,请设置AWS_REGION环境变量,或将其作为参数传递。例如:

key = OpenSSL::PKey::RSA.new(1024)
s3 = Aws::S3::Encryption::Client.new(encryption_key: key, region: "us-east-1") # or the region you are using

答案 2 :(得分:0)

解决此问题的另一种方法是,首先使用以下命令获取详细的错误日志:

heroku run rails console

如果没有错误,您将进入交互式Ruby Shell,否则您将看到无法加载活动存储服务错误。

如果使用的是S3,则必须设置访问密钥,秘密访问密钥,存储桶名称和存储桶区域:

  

SECRET_KEY_BASE:xxx-xxx-xxxxxx-xxx-xxxxxx-xxx-xxx

     

AWS_ACCESS_KEY_ID:xxx-xxx-xxx

     

AWS_SECRET_ACCESS_KEY:xxx-xxx-xxxxxx-xxx-xxx

     

S3_BUCKET_NAME:xxx-xxx-xxx

     

AWS_BUCKET_REGION:us-east-1

然后通过以下方式将环境变量加载到Heroku:figaro heroku:set -e production