Я столкнулся со странной проблемой в поисках лучшего решения, которое я могу найти здесь. Я разрабатываю приложение 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 мы будем транслировать данные с сервера после создания записи в базе данных (после .save в действии создания (или) обратного вызова after_save из модели). Однако я не создаю никаких записей через приложение rails.
Мой первый вопрос: можно ли в этом случае использовать активный кабель?
Поэтому я выбрал второй вариант, и он отлично работает. Но он делает слишком много вызовов БД через каждые X секунд. есть ли способ уменьшить запросы на обновление представлений? Каков наилучший способ, которым я могу пойти сюда? Любая помощь высоко ценится. Спасибо.