ruby-on-rails - 如何在 Ruby 中通过类方法初始化类变量

标签 ruby-on-rails ruby

在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/

相关文章:

ruby-on-rails - Michael Hartl 的 Ruby on Rails 教程 : Chapter 8. 3 - 网站表单显示两次

ruby-on-rails - 验证自引用关联不会链接回 rails 中的原始实例

ruby-on-rails - 如何在 Ruby on Rails 中将类方法链接在一起?

ruby - 如何使用 Ruby 发布到博主博客上的帖子和页面?

ruby-on-rails - 在rails中,在哪里放置一个根据当前日期变化的常量(变量?)?

ruby - 正则表达式匹配第一个句点之前的所有内容

ruby-on-rails - 将 bootstrap span 放入 haml 链接内

ruby - 为什么在这个简单的 Active Record 示例中没有保存 id?

ruby-on-rails - 如何在不调用依赖 : :destroy on associations 的情况下销毁 Rails 模型

ruby-on-rails - 用于将唯一项插入数组的 Ruby 条件