我在Ruby中使用以下代码
require 'csv'
CSV.foreach('credentials/sns.csv', :headers => true, :col_sep => ',') do | row |
SNS.create(:IAM => row['IAM User Name'], :KEY => row['Smtp Username'], :SECRET => row['Smtp Password'])
end
并期望在Vagrant的这一点上我可以使用
config.vm.provision :shell, :path => "scripts/bootstrap.sh", :args => [SNS.KEY, SNS.SECRET]
但最终得到Message: uninitialized constant SNS
这显然不是这样做的方式,所以我做错了什么以及如何解决?
我学到这一点的方式来自This blog post
答案 0 :(得分:1)
您提供的示例假定Car类具有属性的create method + getters。
如果两个片段都在同一个文件中(vagrant配置),那么解决此问题的方法之一是:
SNS = {}
require 'csv'
CSV.foreach('credentials/sns.csv', :headers => true, :col_sep => ',') do | row |
SNS[:IAM]=row['IAM User Name']
SNS[:KEY]=row['Smtp Username']
SNS[:SECRET]=row['Smtp Password']
end
config.vm.provision :shell, :path => "scripts/bootstrap.sh", :args => [SNS[:KEY], SNS[:SECRET]]