我正在尝试安全地存储我在rails项目中使用的Google api密钥。我尝试将其存储在我的secrets.yml文件中,但如果我在我的google脚本& key = ENV ['google_api']中说,则无法获取它。
我很确定这不是方法,但在搜索主题后,我无法真正找到明确答案。谁能提供一些帮助?
谢谢, 托马斯
UPDATE ,这是我用来获取布局文件中的密钥的代码: 问题,我仍然收到我的api_key为“nil”的错误。
<script>
var GOOGLE_API_KEY="#{ENV['GOOGLE_API_KEY']}"
</script>
<%= javascript_include_tag "//maps.google.com/maps/api/js?v=3.23&key=#{ENV['GOOGLE_API_KEY']}&libraries=geometry,places&language=&hl=®ion=&callback=initMap"%>
答案 0 :(得分:2)
您需要将脚本调用放在application.html.erb文件中,以便ruby可以解析ENV['google_api']
。这是一个示例应用程序文件(在HAML中):
!!!
%html
%head
%title Pursuit
= stylesheet_link_tag 'application', media: 'all'
= csrf_meta_tags
:javascript
var GOOGLE_API_KEY="#{ENV['GOOGLE_API_KEY']}"
= javascript_include_tag 'application'
= javascript_include_tag "//maps.googleapis.com/maps/api/js?libraries=places&key=#{ENV['GOOGLE_API_KEY']}"
%body
= render 'layouts/menu'
.row
.col.m12.l10.offset-l1
= yield
答案 1 :(得分:2)
我正在使用figaro gem
。对我来说,工作时将环境变量添加到application.yml
文件。
GOOGLE_API_KEY: there_put_the_key
然后在上面
app/views/layouts/application.html.erb
(如果要将源添加到所有视图,您可以将此行添加到特定视图)只需添加此行
<%= javascript_include_tag "//maps.google.com/maps/api/js?key=#{ENV['GOOGLE_API_KEY']}" %>