0

我试图将我的 api 密钥存储在 yaml 文件中

fresh_desk.yml

production:
  :api_key: 12345

staging:
  :api_key: 12345

development:
  :api_key: my api key here

然后在我的 lib 文件夹中,我有一个名为

fresh_desk_api_wrapper.rb

  class FreshDeskApiWrapper

  attr_accessor :config, :client

  def initialize
self.config = YAML.load("#{Rails.root}/config/fresh_desk.yml")[Rails.env]
self.client = Freshdesk.new("http://onehouse.freshdesk.com/", config.api_key, "X")
  end

  def post_tickets(params)
client.post_tickets(params)
  end
end

然后在我的

客户端控制器.rb

def create
  FreshDeskApiWrapper.new().post_tickets(params[:client])
  redirect_to new_client_path
end

但是当我提交表单时出现错误

undefined method `api_key' for nil:NilClass

有谁知道这是什么原因造成的?以及如何解决?

4

1 回答 1

1

你可能需要一个 File.open
blah.yml

production:
  :api_key: 12345

staging:
  :api_key: 45678

development:
  :api_key: 10203

然后您可以将其加载到哈希中

>> require 'yaml'
=> true
>> config = YAML::load(File.open('blah.yml'))
=> {"production"=>{:api_key=>12345}, "staging"=>{:api_key=>45678}, "development"=>{:api_key=>10203}}
于 2013-08-08T21:55:17.990 回答