加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 有没有办法在不查询/减少查询的情况下了解数据

发布时间:2020-12-16 21:08:19 所属栏目:百科 来源:网络整理
导读:我遇到了一个奇怪的问题,寻找可以到达的最佳解决方案.我正在开发一个rails应用程序,它显示来自另一个应用程序(nodejs)正在使用的公共数据库的数据.所有CRUD操作都发生在另一个平台上.在rails应用程序中,我们只查询并显示数据. 在rails应用程序中,我需要自动
我遇到了一个奇怪的问题,寻找可以到达的最佳解决方案.我正在开发一个rails应用程序,它显示来自另一个应用程序(nodejs)正在使用的公共数据库的数据.所有CRUD操作都发生在另一个平台上.在rails应用程序中,我们只查询并显示数据.

在rails应用程序中,我需要自动更新视图而不刷新.例如

def index
    @states = State.page(params[:state_page])
    @level_one_companies = Company.includes(:state)
                                  .where(level: 1)
                                  .order('created_at DESC').limit(20)

    @level_two_companies = Company.includes(:state)
                                  .where(level: 2)
                                  .order('created_at DESC').limit(20)
end

在索引页面上,我将拥有每个表的表格,当新数据添加到州(或)级别1(或)级别2公司时,我需要刷新表格.

我知道我可以用两种方式自动更新视图,即

>行动电缆.
>使用Jquery以一定的时间间隔进行数据池化.

通常在使用Action Cable时,我们将在db中创建记录后从服务器广播数据(在创建操作(或)after_save回调模型之后的.save之后).但是,我没有通过rails app创建任何记录.

我的第一个问题是,在这种情况下有没有办法使用动作电缆?

所以我选择了第二个选项,它运行正常.但它每隔X秒就会进行过多的db调用.
有没有办法减少查询以更新视图?
我能和这里一起去的最佳方式是什么?任何帮助高度赞赏.谢谢.

解决方法

如果你的标签设置正确,你使用postgres作为数据库.

postgres提供了一个发布 – 订阅机制,您可以将其与action-cable结合使用,以便监听数据库中的更改.

在this gist中,您可以找到带有server-sent-events的postgres-pubsub的示例.将其转换为动作电缆兼容代码应该很简单.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读