RoR - 为lib模块放置/初始化常量的位置

时间:2011-01-05 18:57:46

标签: ruby-on-rails ruby-on-rails-3

在我的Rails 3应用程序中,我在lib /文件夹中有一个模块。该模块需要一个常量变量,这是一个从数据文件加载的大字典。由于字典不会在应用程序的过程中发生变化,并且每次调用模块中的方法时都会重新加载此数据文件,因此我想创建一个常量来保存字典,该字典可以由模块中的模块访问。库。

LIB / my_module:

module My_Module
   def do_something(x)
      y = CONSTANTVAR[x]
      ...
   end
end

初始化常量,我必须加载一个文件:

file = File.new('dataFile.dat','r') #I'm not sure where to put this data file
file.each_line { |line|
             lineInfo = line.split
             CONSTANTVAR[line[0]] = line[1] }
file.close

初始化lib文件夹中的模块可以访问的变量的标准位置在哪里(这是我将访问变量的唯一地方)?

此外,模块加载数据文件,将数据文件放在lib /文件夹中也是标准的吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

我应该把我的,例如,init_dictionary.rb放在config / initializers中。我认为这是满足您需求的更好地方。

答案 1 :(得分:0)

您可以在此处查看完成方式:{​​{3}}

它是用于生成单词的lib,它使用词典。它们保存在:/ lib / forgery / dictionary / *

所以,在/lib/module-name/dictionaries/DATA.dat上保存字典

您可以在config / initialisers / module-name.rb

中初始化您的变量