我目前有2个需要2个不同凭据的API。我想将更改提交到Github
,但我不希望看到这些凭据,因此我决定将所有凭据保存在hash
的单独ruby
文件中,然后想要访问它在我的脚本中。同时,将该文件添加到.gitignore
。但我无法从当前脚本访问hash
。
这是我的credentials.rb
:
credentials = {
APIKEY: '12'
PASSWORD: '34'
sid: '45'
token: '56'
}
这是我的main.rb
:
class ApisController < ApplicationController
def api
url = "https://#{credentials[APIKEY]}:#{credentials[PASSWORD]}@test"
end
end
我不确定如何在main.rb
中调用该哈希值。
答案 0 :(得分:1)
有三种方法可以做到这一点:
.env
熨烫文件中添加所有私人凭据。gitignore
。第一种方式:直接在您需要的文件中使用环境变量。如果你需要yaml:
your_yaml_file.yml
credentials_or_whatever:
APIKEY: <%= ENV['API_KEY'] %>
PASSWORD: <%= ENV['API_PASSWORD'] %>
或者如果您需要main.rb
:
class ApisController < ApplicationController
def api
url = "https://#{credentials['APIKEY']}:#{credentials['PASSWORD']}@test"
end
end
第二种方式:如果出于某种原因,您必须使用gitignore
而不仅仅使用环境文件的哈希,那么您的credentials.rb
包含您以后的凭据访问您需要的地方。 gitignore
d档:
credentials = {
"APIKEY": "12",
"PASSWORD": "34"
"sid": "45"
"token": "56"
}
然后是您的main.rb
:
class ApisController < ApplicationController
def api
url = "https://#{credentials["APIKEY"]}:#{credentials["PASSWORD"]}@test"
end
end
第三种方式:在环境变量中添加您的私有凭据,然后使用它们来创建您的gitignore哈希:
您的credentials.rb
文件:
credentials = {
"APIKEY": ENV['APIKEY'],
"PASSWORD": ENV['PASSWORD'],
"sid": ['SID'],
"token": ENV['TOKEN']
}
在第一种和第二种情况下,您的环境变量文件可能如下所示:
.env
(在你的rails根文件夹中):
APIKEY = 12
PASSWORD = 34
SID = 1234
TOKEN = 5678
我希望这有助于解释!