モジュール内でコールバックを定義することは可能ですかbefore_save
? 次のようなクラスで定義できます:
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 の初心者です。
ベストアンサー1
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 (RailsConcern
機能付き)
module MyModule
extend ActiveSupport::Concern
included do
before_save :do_something
end
def do_something
#do whatever
end
end