2016-10-22 36 views
0

我正在写我的第一个SketchUp插件,并且我想在ini文件中存储一些选项。为此,我在SketchUp控制台安装INIFILE宝石和我在Plugins目录下面的文件options.ini:在SketchUp中加载* .ini文件失败Ruby API

[Options] 
option1 = value1 
option2 = value2 

而且我有以下代码:

conf = IniFile.load('options.ini') 
options = conf["Options"] 

当我运行剧本,出于某种原因,负载方法不能加载ini文件,和我的下一行运行时异常,对试图访问一个NilClass对象“选项”:

Error: #<NoMethodError: undefined method `[]' for nil:NilClass> 

有somebod你以前有同样的问题吗?任何帮助表示赞赏!

+0

脚本如何知道在哪里可以找到ini文件?您需要提供ini文件的正确路径。 – Casper

+0

它与脚本文件位于同一文件夹中。我也尝试过使用'./options.ini',但那不起作用。 –

回答

2

我设法找到了问题。 Sketchup只将插件存储在插件文件夹中,但它从Documents文件夹(在Windows上)调用它们。因此,在脚本中不能使用相对路径。添加以下解决了问题:

conf = IniFile.load(File.dirname(__FILE__) + '/options.ini')