这是我在lib / p_table.rb中的模块:
class PTable
.
.
.
def convertElmentToMass(el)
@el = Element.find_by_symbol(el)
end
end
如果我的app / models / element.rb中有任何相关性,那么这是我的模型
class Element < ActiveRecord::Base
end
出于某种原因,当我尝试测试我的convertElementToMass函数时,它会显示uninitialized constant PTable::Element
。这很奇怪,因为我应该能够在任何地方调用我的模型类吗?
这是我在lib / controllers / module_spec.rb中的rspec
require 'spec_helper.rb'
require 'p_table'
describe PTable do
class DummyClass
end
before(:all) do
@dummy = DummyClass.new
@dummy.extend PTable
end
describe "testf" do
it "saves the world" do
expect(@dummy.(["Na", '2'])).to eq(2.34)
end
end
end
答案 0 :(得分:4)
仅使用::Element
代替Element
,它会起作用。
默认情况下,Rails自动加载器会尝试在模块内部找到类,方法是包含::
,让系统知道您希望根模块上有Element
类。