当我尝试将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
require 'dm-core'
require File.dirname(__FILE__) + '/test_observer'
class Test
include DataMapper::Resource
property :id, Serial
property :name, String
property :state, Integer
end
每次我需要Test类时,都会遇到错误:
uninitialized constant TestObserver::Test (NameError)
我不确定为什么TestObserver ::被添加到类名前面。我有一种感觉,我没有把要求放在正确的地方,但我已经尝试了一切,但它仍然不会很好。非常感谢任何帮助。
谢谢!
答案 0 :(得分:1)
在声明Test类之前,您需要test.rb,这需要test_observer 。你应该删除这一行:
require File.dirname(__FILE__) + '/test_observer'
并按顺序要求文件:
要求'测试'
要求'test_observer'