首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在带有Phobos的Rails 6中找不到ActiveRecord类

在带有Phobos的Rails 6中找不到ActiveRecord类
EN

Stack Overflow用户
提问于 2021-05-24 17:13:19
回答 1查看 115关注 0票数 0

我使用菲博斯宝石在Rails应用程序中使用Kakfa消息,并在rails config/initializers/phobos.rb中配置它,以便从config/phobos.yml启动executor,如下所示:

config/initializers/phobos.rb

代码语言:javascript
复制
Phobos.configure('config/phobos.yml')
executor = Phobos::Executor.new
executor.start

当试图从:exception_class=>"NameError", :exception_message=>"uninitialized constant TransactionsConsumer::Address"加载Address模型时,我会得到一个ActiveRecord错误。不应该有TransactionsConsumer::Address,但是它应该在app/models/address.rb中找到Address类。

我在app/consumers/transactions_consumer.rb上的消费者

代码语言:javascript
复制
class TransactionsConsumer
  include Phobos::Handler

  def self.start(kafka_client)
    # setup handler
    puts "Starting Transaction Consumer"
  end

  def consume(payload, metadata)
    puts metadata
    puts payload
    data = JSON.parse(payload)
    if Address.exists?(address: data["fromAddress"])
      AccountBalanceUpdateJob.perform_in(1, data["fromAddress"])
    end
  end
end

我假设我没有以某种方式正确地配置Phobos以自动加载或查看Rails类。如何配置Phobos以处理Rails模型/对象?

TransactionConsumer类需要includerequire吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-17 19:14:30

这个问题是我自己的错。我将Address类重命名为Account,我认为这是因为我启动railsphobos的方式

改变:

代码语言:javascript
复制
if Address.exists?(address: data["fromAddress"])
  AccountBalanceUpdateJob.perform_in(1, data["fromAddress"])
end

至:

代码语言:javascript
复制
if Account.exists?(address: data["fromAddress"])
  AccountBalanceUpdateJob.perform_in(1, data["fromAddress"])
end

解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67676220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档