Ruby 如何将datamapper observer类与model类分离到不同的文件中?
当我试图将dm observer类从模型类拆分为一个单独的文件时,我遇到了一个错误。以前,如果我把它全部放在一个文件中,它工作得很好Ruby 如何将datamapper observer类与model类分离到不同的文件中?,ruby,model,datamapper,observer-pattern,Ruby,Model,Datamapper,Observer Pattern,当我试图将dm observer类从模型类拆分为一个单独的文件时,我遇到了一个错误。以前,如果我把它全部放在一个文件中,它工作得很好 # test_observer.rb require 'dm-observer' class TestObserver include DataMapper::Observer observe Test before :create do # does funky stuff end end # test.rb requ
# 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::在类名前面。我有一种感觉,我没有把要求放在正确的地方,但我已经尝试了一切,它仍然不会发挥好。如果您能在这方面提供帮助,我将不胜感激
谢谢 您需要test.rb,它在声明测试类之前需要test\u observer。您应该删除此行:
require File.dirname(\uuuuu File\uuuuu)+'/test\u observer'
并按该顺序要求文件:
需要“测试”
需要“测试观察者”再次感谢solnic!这很有效。是否有任何方法可以将require for test_observer转换为test.rb,这样我就不必担心每次使用test类时都需要observer类?