2014-10-05 78 views
1

這是我在LIB/p_table.rb模塊:如何在模塊導軌中訪問我的模型類?

class PTable 
    . 
    . 
    . 
    def convertElmentToMass(el) 
     @el = Element.find_by_symbol(el) 
    end 
end 

這裏是我的模型,如果它是在我的應用程序/模型/ element.rb

class Element < ActiveRecord::Base 
end 

任何關聯出於某種原因,當我嘗試測試我的convertElementToMass函數,它說uninitialized constant PTable::Element。這很奇怪,因爲我應該可以在任何地方給我的模型類打電話嗎?

這是我在LIB /控制器/ 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

你如何測試'convertElementToMass()'?你從哪裏來的? – 2014-10-05 12:30:36

+0

我更新了它。我使用rspec。 – user3904534 2014-10-05 16:55:24

回答

3

使用::Element而不是僅Element,它會工作。

默認情況下,Rails自動加載器會嘗試在模塊內部找到類,方法是包含::,讓系統知道您需要在根模塊中使用Element類。

+0

太棒了!謝謝! – user3904534 2014-10-05 17:12:16