gpt4 book ai didi

ruby-on-rails - Rails 3 run_callbacks 方法

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

我正在使用新的 Rails 3 API,我对新方法有疑问 run_callbacks(kind, *args, &block)

在下面的代码中:

class User < ActiveRecord::Base
before_save :say_hi
after_save :say_bye

private

def say_hi; puts "hi"; end

def say_bye; puts "bye"; end

end

我可以通过运行在保存时显式调用回调:

> u.run_callbacks(:save)
hi
bye
=> true

但是我的问题是,我如何才能运行before_saveafter_save 回调?

查看 run_callbacks(kind, *args, &block) 代码:

# File activesupport/lib/active_support/callbacks.rb, line 92
def run_callbacks(kind, *args, &block)
send("_run_#{kind}_callbacks", *args, &block)
end

我不知道如何构建 *args 以仅调用 beforeafter 回调,我尝试了类似 u .run_callbacks(:before_save)(给我未定义的方法错误)和 u.run_callbacks(:save, :before) 运行所有保存回调(之前之后)。

最佳答案

看起来您遇到了 Rails 3.0 中的错误。它似乎在 3.0.1 的队列中,如 this lighthouse ticket 中所述.

正如@venables 所说,您至少可以通过将 false 发送到 run_callbacks(:save) 来触发 before_save 回调。

关于ruby-on-rails - Rails 3 run_callbacks 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660691/

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