Как мне подходить к отображению актуальных данных из внешнего API (с рельсами)?
Итак, я пытаюсь создать небольшое приложение для внутреннего использования в небольшом агентстве по разработке / разработке, в котором я работаю. Я довольно новичок в рельсах (я разработчик внешнего интерфейса), но я учусь.
Цель состоит в том, чтобы приложение получало данные из Harvest и отображало ежедневные / еженедельные / ежемесячные часы, отработанные для каждого из 10 сотрудников, а также другую информацию, такую как то, активны ли они в настоящее время и какой процент их работы оплачивается. Информация должна обновляться примерно каждую минуту.
Мне просто нужен совет о том, как лучше всего структурировать этот проект, так как большая часть данных, с которыми я работаю, будет получена из внешнего источника. Сначала я попытался просто сохранить имя, адрес электронной почты и идентификатор урожая для каждого пользователя в моей базе данных pg, а затем использовать идентификатор_дождя в качестве ссылки для запроса сбора данных для нужных мне данных. Вот пример того, как я собираю отчеты о работе:
def harvest_user
harvest.users.find(self.harvest_id)
end
def entries(interval, billable)
user = self.harvest_user
entries = harvest.reports.time_by_user(user, interval, DateTime.now, billable)
sum = 0
entries.each do |entry|
hrs = entry.hours.to_s.to_f
sum += hrs
end
sum.round(1)
end
Затем я обновляю данные каждую минуту, делая ajax-вызов для частичного рендеринга данных.
Все работает правильно, но начальная загрузка страницы действительно очень медленная, поэтому я предполагаю, что я что-то делаю не так.
Любой совет? Я чувствую, что могу ухватиться за некоторые идеи о том, как сделать один большой вызов API и затем отфильтровать эти данные по мере необходимости, но я не совсем уверен, с чего начать.
Спасибо!