是否有可能在模块中定义一个'before_save'callback?

是否有可能在模块中定义before_savecallback? 像这样的class级:

 class Model include MongoMapper::Document include MyModule end 

和这样一个模块:

 module MyModule before_save :do_something def do_something #do whatever end end 

do_something将在任何Model对象被保存之前调用? 我试过这样,但得到undefined method 'before_save' for MyModule:Module

道歉,如果它是简单的 – 我是新来的Ruby和Rails。

在Ruby on Rails <3(没有Rails特性,只有Ruby)

 module MyModule def self.included(base) base.class_eval do before_save :do_something end end def do_something #do whatever end end 

在Ruby on Rails> = 3(具有Rails Concernfunction)

 module MyModule extend ActiveSupport::Concern included do before_save :do_something end def do_something #do whatever end end 

included模块的方法可能是您所需要的。

http://www.ruby-doc.org/core-2.1.2/Module.html#method-i-included