2010-07-20 13 views
0

我嘗試將dm-observer類拆分爲模型類中的單獨文件時遇到了錯誤。以前它工作得很好,如果我把它全部放入一個文件。如何將datamapper觀察器類與模型類分離爲不同的文件?

# test_observer.rb 
require 'dm-observer' 

class TestObserver 
    include DataMapper::Observer 
    observe Test 

    before :create do 
     # does funky stuff 
    end 
end 

# test.rb 
require 'dm-core' 
require File.dirname(__FILE__) + '/test_observer' 

class Test 
    include DataMapper::Resource 

    property :id, Serial 
    property :name, String 
    property :state, Integer 
end 

每當我需要測試類,我遇到了錯誤:

uninitialized constant TestObserver::Test (NameError) 

我不知道爲什麼TestObserver ::前置到類名。我有一種感覺,我沒有把要求放在正確的地方,但我已經嘗試了一切,但它仍然不會很好。希望對此有所幫助。

謝謝!

回答

1

您需要test.rb,其中需要test_observer 之前聲明瞭測試類。您應該刪除此行:

require File.dirname(__FILE__) + '/test_observer'

,並依次需要的文件:

需要 '測試'

需要 'test_observer'

+0

再次感謝solnic!這很好。有沒有什麼辦法可以將test_observer的require變成test.rb,這樣我就不用擔心每次使用Test類都需要觀察者類? – zaizhuang 2010-07-21 08:01:46

相關問題