是否有可能在模块中定义一个'before_save'callback?
是否有可能在模块中定义before_save
callback? 像这样的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 Concern
function)
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