从另一个 ruby 脚本访问哈希值
Access a hash value from another ruby script
我目前有 2 个 API,需要 2 个不同的凭据。我想提交对 Github
的更改,但我不希望看到这些凭据,因此我决定将我的所有凭据保存在单独的 ruby
文件中的 hash
中,然后想访问它在我的脚本中。同时,将该文件添加到 .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
中的散列。
您可以通过三种方式执行此操作:
- 在 Rails 中有常规且 方便的 方法可以做到这一点。在
.env
ironment 文件中添加您所有的私人凭据。
- 从您
gitignore
. 的另一个 ruby 脚本访问哈希值
- 或者如果你坚持的话,你可以用更长的方式来做。
第一种方式:直接在文件中需要的地方使用环境变量。如果您在 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
希望对解释有所帮助!
我目前有 2 个 API,需要 2 个不同的凭据。我想提交对 Github
的更改,但我不希望看到这些凭据,因此我决定将我的所有凭据保存在单独的 ruby
文件中的 hash
中,然后想访问它在我的脚本中。同时,将该文件添加到 .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
中的散列。
您可以通过三种方式执行此操作:
- 在 Rails 中有常规且 方便的 方法可以做到这一点。在
.env
ironment 文件中添加您所有的私人凭据。 - 从您
gitignore
. 的另一个 ruby 脚本访问哈希值
- 或者如果你坚持的话,你可以用更长的方式来做。
第一种方式:直接在文件中需要的地方使用环境变量。如果您在 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
希望对解释有所帮助!