【问题标题】:ActiveJob custom serializer - uninitialized constant NameErrorActiveJob 自定义序列化程序 - 未初始化的常量 NameError
【发布时间】:2021-03-30 12:07:09
【问题描述】:

我正在尝试在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 序列化程序?

【问题讨论】:

  • 您是否已将 lib 文件夹添加到您的自动加载路径中?我认为使用 zeigeist 的新版本 Rails,您需要将该目录显式添加到自动加载路径
  • 我的印象是,与{Rails.root}/lib 不同,{Rails.root}/app 下的所有内容都会自动加载。我有几个实用程序类/模块,它们没有任何问题。
  • 啊,我的错误看错了顶部的路径:(还没有足够的咖啡:P

标签: ruby-on-rails rails-activejob


【解决方案1】:

如果对任何人有帮助,

当我将序列化程序和配置都放在初始化程序中时,它似乎可以工作

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

  config.active_job.custom_serializers << MoneySerializer

在这里上课感觉很奇怪。还有其他建议吗?

【讨论】:

    猜你喜欢
    • 2011-10-19
    • 2015-05-01
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    • 2015-01-19
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多