gpt4 book ai didi

ruby-on-rails - ruby : Execute method in context of base class

转载 作者:行者123 更新时间:2023-12-03 15:20:19 26 4
gpt4 key购买 nike

我有大约 20 个不同的 Active Jobs我现在意识到每个人都需要一个 before_perform 方法来设置 PaperTrail content outside the context of the controller .

我计划将这个 before_perform 方法放在一个助手中,然后在每个作业中包含这个助手,但我收到一个错误:

undefined method `before_perform' for MyApp:JobHelpers:Module

我认为这是因为所讨论的模块只是一个模块,而不是一个 Active Job。如何避免在我的每个事件作业中重复相同的 4 行 before_perform 方法?

工作助手:

module MyApp
module JobHelpers
before_perform do |job|
# stuff to do
end
end
end

工作:

require 'my_app/job_helpers'

class TheJob < ActiveJob::Base
include MyApp::JobHelpers

# Do more stuff
end

最佳答案

像这样重写你的助手:

module MyApp
module JobHelpers
extend ActiveSupport::Concern

included do

# inside this you can call ActiveJob helpers
before_perform do
# stuff to do
end
end
end
end

关于ruby-on-rails - ruby : Execute method in context of base class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32589465/

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