访问 ruby 迭代器中的模块



似乎在任何地方都找不到这个:

Module::ModelClassOne.all.each do
  Module::ModelClassTwo.all.each do
    # get an error of undefined constant ModelClassTwo
  end
end

什么给? 我尝试了几种不同的选择:

Module::ModelClassOne.all.each do
  ::Module::ModelClassTwo.all.each do
    # get an error of undefined constant ModelClassTwo
  end
end

Module::ModelClassOne.all.each do
  ModelClassTwo.all.each do
    # get an error of undefined constant ModelClassTwo
  end
end

Module::ModelClassOne.each do
  ::ModelClassTwo.each do
    # get an error of undefined constant ModelClassTwo
  end
end

什么都没用,这让我很烦躁。

each 方法不会重新定义执行上下文,因此这可能是未按预期定义ModelClassTwo的情况。

确保实际加载ModelClassTwo。您可能忘记require该文件。

哇,很尴尬。 这完全是一个错字,与耙子任务如何吐出错误有很大关系。 我试图分配 model.attributes = { option: option.id } 而不是 model.attributes = { option_id: option.id } 它给了我一个错误,即"单位化常量选项"来自属性哈希。 在这里工作太久了。 在这里问的第二个问题是多么可怕。 对不起伙计们和女孩们!

最新更新