首页 > 解决方案 > 如何使用 ruby​​ event_store_client 发布事件?

问题描述

我正在关注event_store_client上的文档,以便使用EventStore DB设置发布/订阅系统,但我无法发布要发布的事件。

以下是我到目前为止采取的步骤:

我可以按照教程步骤进行操作

event_store.publish(stream: 'newstream', events: [event])

然后我收到以下错误:

ArgumentError: wrong number of arguments (given 1, expected 0)
from /usr/local/bundle/gems/event_store_client-1.0.8/lib/event_store_client/event.rb:17:in `initialize'

我试图在堆栈跟踪之后查看源代码,但我找不到该调用有什么问题。该event对象似乎已正确初始化,并且我很确定连接也已正确建立(使用不同的凭据出现另一个错误)。

非常感谢任何建议,谢谢。:-)

标签: rubygrpceventstoredb

解决方案


从 1.0.8 版开始,它似乎event_store_client与 Ruby 3.0.0 不兼容。问题可能是由于对 1.4.0 的依赖dry-struct,或者EventStoreClient::Event是初始化时传递属性的方式。

现在,我将坚持使用 Ruby 2.7.3,示例确实按照文档说明工作,并在我最终升级到 Ruby 3 后更新此问答。


推荐阅读