Rails.application.secrets返回nil

时间:2018-07-06 21:14:31

标签: ruby-on-rails linux ubuntu

我有一个正在Google Cloud VM实例上运行的Rails应用程序。我已将SSH服务器放入Linux服务器,编辑了etc/environment文件并添加了新的机密:

export NEW_EXAMPLE_SECRET=example_secret

export NEW_EXAMPLE_URL=https://example.com

这是我的登台服务器,我正在尝试集成自己构建的新API。我有一个接受信息的表格,我正在尝试通过后台作业将信息发送到新的API。我正在使用法拉第发送信息,这是后台作业的样子:

class SendLeadJob < ActiveJob::Base
  queue_as :default

def perform(data)
    connection.post("#{Rails.application.secrets.base_url.to_s}/api/test", data)
end

private

def connection
  Faraday.new do |conn|
    conn.request :url_encoded # form-encode POST params
    conn.adapter Faraday.default_adapter
  end
end
end

我遇到以下错误:

nil:NilClass的未定义方法“ +”

在perform方法中引用URL上的插值:

#{Rails.application.secrets.base_url.to_s}/api/test", data)

为什么应用程序不获取秘密?

当我进入暂存服务器并运行rails控制台,然后执行Rails.application.secrets.base_url时,我得到了所需的URL,但是该应用程序在实际运行时没有找到它?有人知道为什么会这样吗?

0 个答案:

没有答案