我遇到了一个奇怪的问题,寻找我可以到达的最佳解决方案。我正在开发一个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级(或)二级公司。
我知道我可以用两种方式自动更新的观点去即
- 作用电缆。
- 使用Jquery以一定的时间间隔数据池。
通常在使用Action Cable时,我们将在db中创建记录(在创建操作(或模型中的after_save回调之后的.save之后)之后从服务器广播数据。但是,我不通过Rails应用程序创建任何记录。
我的第一个问题是,在这种情况下是否有任何方式使用动作电缆?
所以我去了第二个选项,它工作正常。但是在每X秒后它会调用太多的db调用。 有什么办法可以减少查询来更新视图? 什么是我可以在这里与最好的方式?任何帮助高度赞赏。谢谢。
谢谢@phoet ,会试一试,让你知道。 –