在Ruby中有没有简单的方法通过类方法来初始化类变量?我正在尝试这个:
class MyClass
@@product_families = MyClass.load_pgrollups(File.join(File.dirname(__FILE__), ASSETS_FOLDER_NAME, PGROLLUP_CSV_FILENAME))
def self.load_pgrollups(csv_file)
....
return product_families
end
我遇到了一个异常:ModuleName::myClass:Class 的未定义方法 `load_pgrollups'
我不一定要初始化类变量。我还尝试通过模块函数初始化模块中的常量
module ModuleName
PRODUCT_FAMILIES = load_pgrollups(File.join(File.dirname(__FILE__), ASSETS_FOLDER_NAME, PGROLLUP_CSV_FILENAME))
def load_pgrollups(csv_file)
....
return product_families
end
但是我得到了 MyModule:Module 的未定义方法 `load_pgrollups'
最佳答案
定义后调用:
class myClass
def self.load_pgrollups(csv_file)
....
return product_families
end
@@product_families = load_pgrollups(File.join(__dir__, ASSETS_FOLDER_NAME, PGROLLUP_CSV_FILENAME))
end
关于ruby-on-rails - 如何在 Ruby 中通过类方法初始化类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22493813/