Struct类中的“Group”模型抛出未定义的方法错误

时间:2014-10-08 23:10:15

标签: ruby-on-rails ruby ruby-on-rails-4 struct

我有一个使用Struct创建的Job类。我最近添加了名为Group的ActiveRecord模型,我需要在此类的Group方法中重置此perform模型上的计数器,如下所示:

module Jobs
  class ProcessV1 < Struct.new(:payload, :reporting_ip)

    def perform
      Group.reset_counters 1, :computers
    end

  end
end

但这会引发错误:

undefined method "reset_counters" for Etc::Group:Class

在一些快速的谷歌搜索中,我已经了解到,显然Group是Etc的一个子类,它以某种方式与Struct相关。如果没有重命名我的Group模型,有没有办法解决这个问题?

我的第一次尝试

我尝试了以下内容来进一步指定模型位置

ApplicationName::Application::Group

摆脱了我的Etc :: Group错误,但后来我得到了:

warning: toplevel constant Group referenced by ApplicationName::Application::Group

1 个答案:

答案 0 :(得分:1)

如果您确实希望顶层组不变,请尝试::Group。这明确告诉Ruby你想要顶级常量,而不是走向模块树来找到Group常量。