Rake Task для заполнения представлений информацией, полученной из вызова API.

В настоящее время я работаю над проектом, в котором я получаю информацию о предстоящих вебинарах через API GoToWebinar. В консоли все отлично работает. Ниже приведен код, который отлично работает с консоли:

1.9.3p125 :003 > require 'gotowebinar'
 => true 
1.9.3p125 :004 > g = GoToWebinar::API.new()
# intializes the webinar with API key and access token

1.9.3p125 :005 > g.get_upcoming_webinars
# Fetches the Upcoming webinars from GoTowebinar

Теперь мне нужно также заполнить информацию, полученную из g.get_upcoming_webinars, в соответствующих представлениях. Мой план состоял в том, чтобы поместить приведенный выше код в действие в контроллере, а затем заполнить соответствующее представление информацией. Однако приложение будет размещено на Heroku, и клиент не хочет, чтобы я помещал этот код в контроллер, чтобы выполнять вызовы API при каждой загрузке. На самом деле клиент хочет, чтобы я создал задачу rake, которую он может запускать один раз в день, и она заполняет представление информацией.

Я понятия не имею, как мне это сделать. Я искал некоторые ресурсы, а также играл с вещами, но напрасно.

Любая помощь в решении этого вопроса будет высоко оценена.

Спасибо


person Smoke    schedule 06.05.2012    source источник


Ответы (1)


Вы можете сделать так, чтобы задача rake обновляла вашу базу данных с помощью API. Затем отобразите данные в своих представлениях, используя ORM, как обычно в приложении rails.

person seph    schedule 06.05.2012
comment
Это также было одним из моих планов, но клиент хочет задачу рейка, которую он может запускать ежедневно. Так что сохранение информации в базе данных — это не то, чего он хочет. Спасибо за предложение, хотя! - person Smoke; 06.05.2012
comment
Ежедневный запуск задачи rake не исключает сохранения информации в базе данных. Есть ли еще одно требование, которое мне здесь не хватает? - person seph; 06.05.2012
comment
Приложение статичное. Он не использует базу данных ни для чего, кроме сохранения информации о пользователях, подписавшихся на конкретный вебинар. Кроме того, клиент не хочет, чтобы я заполнил базу данных информацией о вебинарах. - person Smoke; 06.05.2012
comment
Хорошо. Вы можете создать частичное представление в задаче rake. Затем отобразите партиал в представлении, как обычно в рельсах. - person seph; 06.05.2012
comment
Хорошо, но вопрос в том, как мне это сделать?? - person Smoke; 06.05.2012
comment
Вы можете использовать File.open('_some_partial.html.erb', 'w') do |handle|... в задаче rake и писать в нее с помощью handle.puts("stuff from the api call"). Вот пример чтения: link< /а> - person seph; 06.05.2012