我有一個消息模型類(它繼承自ActiveRecord :: Base)。對於特定的部署,我希望有一個單獨的文件通過添加回調來修改消息。所以,與其這樣做的:在單獨的文件(RoR)中爲模型類添加回調
# app/models/message.rb
class Message < ActiveRecord::Base
before_save :foo
def foo
puts 'foo!'
end
end
我希望能夠做到:
# app/models/message.rb
class Message < ActiveRecord::Base
end
# config/initializers/fixes.rb
Message
class Message
before_save :foo
def foo
puts 'foo!'
end
end
問題是,當我啓動腳本/控制檯它的工作原理,但是當我開始使用腳本它/服務器它通常沒有。這是最糟糕的部分,但並不是它永遠不會起作用。有時候我會啓動服務器,它有效,有時不會,並且不會對源進行任何更改。
我重新啓動服務器本身(據我所知)初始化程序只運行一次,如果修改不重新加載。
我知道'有時'的作品非常含糊,但我在這裏度過了幾個小時,沒有任何運氣。也許有人有類似的問題,或者可以想出一個不同的想法來添加回調。
我不知道爲什麼我一直試圖「破解」的軌道,如果總是有一些內置做的正是我需要做的。非常感謝! – 2010-01-21 16:04:29
樂意幫忙! =) – jonnii 2010-01-21 16:08:45
您可能需要讓你的控制器瞭解所使用的觀察員,但是,所以一定要徹底地測試。 – tadman 2010-01-21 20:03:26