首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Hotwire集成到现有Rails项目中的问题

将Hotwire集成到现有Rails项目中的问题
EN

Stack Overflow用户
提问于 2021-05-18 02:50:30
回答 2查看 366关注 0票数 0

我刚加入这个社区,这是我的第一篇文章。

我已经跟踪了几个Hotwire教程,并使用该技术构建了一些原型。与JS前端框架相比,获得类似SPA的响应的复杂性要低得多,这给我留下了深刻印象。

然而,我发现,当我试图将代码和过程从我的原型转换到我现有的Rails项目时,它根本无法工作。更糟的是我不知道为什么。

我尝试用以下一般过程编写一些跟踪程序代码:

  1. 包括Hotwire宝石
  2. 通过终端命令安装Hotwire
  3. 包括来自相关模式的广播
  4. 在视图级别将turbo_stream_from标记作为侦听器应用
  5. 在您希望更新模型数据的地方包括一个turbo_frame_tag

这在我的原型中是可靠的,但在我现有的项目中不起作用。我怀疑这可能是因为我现有的项目没有使用最新版本的Rails或Ruby?(升级也不容易。)我目前正在使用RubyVersion2.7.1和Rails版本6.0.2。

我知道我应该提供一些我的项目代码,但我甚至不知道从哪里开始。如果有人能给我一些指导的话,我会非常感激的。谢谢!

编辑:如果有帮助的话,这些都是我在尝试让Hotwire自动修改索引页面上的模型实例列表时得到的终端消息类型。好像广播起作用了,但我的听众不行吗?

提交数据库更改时的终端消息

故事索引页

故事部分代码

我故事模型中的代码

编辑:通过Chrome dev工具的HTML源代码

EN

回答 2

Stack Overflow用户

发布于 2021-05-18 06:47:38

想到的一件事是,在流响应中有一个<turbo-frame-tag>,为什么呢?我不确定这是否是造成这种情况的原因,但是看看他们的示例,流模板不应该包含框架标记,应该是这样的:

代码语言:javascript
复制
<turbo-stream action="append" target="dom_id">
    <template>
         Content to append to container designated with the dom_id.
    </template>
</turbo-stream>

您确定页面上有带有id=“故事”的div吗?这就是流要追加的元素;如果找不到,什么也不会发生。

票数 1
EN

Stack Overflow用户

发布于 2021-05-23 06:37:32

我想绕回这篇文章,报告我没有找到解决办法。这是尽管花费了超过一个星期的全职时间试图调试这个问题。

最后,用最新版本的Ruby、Rails和所有的宝石启动一个新的回购更快、更容易。我继续简单地复制和粘贴尽可能多的代码到新的回购。除此之外,我用我的终端命令来追溯我的步骤,基本上创建了一个原始应用程序的克隆。

瞧,它起作用了。

新的应用程序使用RubyVersion3.0.1和Rails版本6.1.3.2。应用程序的旧迭代(不起作用的程序)运行在RubyVersion2.7.1和Rails版本6.0.2.2上。

感谢在这件事上伸出援手帮助我的每一个人。

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

https://stackoverflow.com/questions/67579310

复制
相关文章

相似问题

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