gpt4 book ai didi

ruby-on-rails - 是否可以在模块中定义 'before_save' 回调?

转载 作者:数据小太阳 更新时间:2023-10-29 06:20:13 24 4
gpt4 key购买 nike

是否可以在模块中定义 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 的新手。

最佳答案

在 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 特性)

module MyModule
extend ActiveSupport::Concern

included do
before_save :do_something
end

def do_something
#do whatever
end
end

关于ruby-on-rails - 是否可以在模块中定义 'before_save' 回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7444522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com