Wpadłem na dziwny problem, szukając najlepszego rozwiązania, które mogę tu uzyskać. Zajmuję się tworzeniem aplikacji szyny, która wyświetla dane ze wspólnej bazy danych, która jest używana przez inną aplikację (nodejs). Wszystkie operacje CRUD odbywają się na drugiej platformie. W aplikacji railsowej po prostu wysyłamy zapytania i wyświetlamy dane.jest jakiś sposób na poznanie aktualizacji bazy danych bez zapytań/mniej zapytań?
W aplikacji szyny muszę automatycznie aktualizować widoki bez odświeżania. na przykład
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
na stronie indeksu i będzie mieć tabele dla każdego z nich i muszę odświeżyć tabele, gdy nowe dane są dodawane do stanu (lub) Poziom 1 (lub) Poziom 2 przedsiębiorstw.
Wiem, że mogę iść z widokiem na dwa sposoby automatycznej aktualizacji tj
- działania Cable.
- Pule danych w przedziale czasu za pomocą Jquery.
Zwykle podczas korzystania z kabla Action wysyłamy dane z serwera po utworzeniu rekordu w db (po .save w akcji create (lub) after_save callback z modelu). Jednak nie tworzę żadnych rekordów za pośrednictwem aplikacji rails.
Moje pierwsze pytanie brzmi: czy w tym przypadku jest jakikolwiek sposób użyć kabla akcji?
Więc poszedłem z drugą opcją i działa dobrze. Ale robi zbyt wiele połączeń db po każdych X sekundach. Czy istnieje sposób na zmniejszenie liczby zapytań, aby zaktualizować widoki? Jaki jest najlepszy sposób, aby przejść tutaj? Każda pomoc bardzo ceniona. Dzięki.
Dziękuję @phoet , spróbuję i dam ci znać. –