Je rencontre une erreur lorsque j'essaie de scinder la classe dm-observateur dans un fichier séparé de ma classe de modèle. Auparavant, cela fonctionnait bien si je mettais tout dans un seul fichier.Comment séparer une classe d'observateur de datamappers dans un fichier différent de la classe de modèle?
# 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
Chaque fois que je requiers la classe de test, je cours dans l'erreur:
uninitialized constant TestObserver::Test (NameError)
Je ne sais pas pourquoi le TestObserver :: est préfixé au nom de la classe. J'ai le sentiment que je ne mets pas les exigences au bon endroit, mais j'ai tout essayé et ça ne fonctionnera toujours pas bien. J'apprécierais toute aide à ce sujet.
Merci!
Merci encore solnic! Cela a bien fonctionné. Est-ce qu'il y a un moyen pour que test_observer soit utilisé dans test.rb afin que je n'ai pas à m'inquiéter d'avoir besoin de la classe d'observateur chaque fois que j'utilise la classe Test? – zaizhuang