gpt4 book ai didi

ruby-on-rails - ActiveJob 自定义序列化程序 - 未初始化的常量 NameError

转载 作者:行者123 更新时间:2023-12-05 02:43:34 24 4
gpt4 key购买 nike

我正在尝试在 the ActiveJob Rails Guide 之后向 ActiveJob 添加自定义序列化程序.我有以下类,最初在文件 app/lib/money_serializer.rb,

  class MoneySerializer < ActiveJob::Serializers::ObjectSerializer
# ...
end

并且在 config/application.rb

  # ...
config.active_job.custom_serializers << MoneySerializer
# ...

我一直收到 uninitialized constant MoneySerializer (NameError) 这向我暗示序列化程序未在启动时加载并尝试将其放置在不同位置(包括在配置/初始化程序下)但没有任何运气。

我在这里错过了什么?我应该在哪里放置 ActiveJob 序列化程序?

最佳答案

基于讨论here ,问题最好按如下方式解决:

Rails.autoloaders.main.ignore(Rails.root.join("app/serializers"))

Dir[Rails.root.join("app/serializers/**/*.rb")].each { |f| require f }

Rails.application.config.active_job.custom_serializers << MoneySerializer

更新:在 Rails 7 中,您只需将以下内容添加到 config/application.rb:

config.autoload_once_paths += Dir[Rails.root.join("app/serializers")]

关于ruby-on-rails - ActiveJob 自定义序列化程序 - 未初始化的常量 NameError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66870657/

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