Как получить доступ к данным внутри переменной? Ошибка: неопределенный метод - PullRequest
0 голосов
/ 20 июня 2019

Печать содержимого переменной дает мне кучу данных.Я хочу получить доступ к части этих данных, но получаю сообщение об ошибке.

Я использую Viewpoint :: EWS и успешно получаю нужные мне данные.

calendaritems = folder.find_items({:folder_id => folder.folder_id, :calendar_view => {:start_date => sd.rfc3339(), :end_date => ed.rfc3339()}})
calendaritems.each do |event|
...
end

Печать переменной "событие ", я вижу нужные мне данные:" date_time_stamp "(или" meeting_reply_time ").

#<Viewpoint::EWS::Types::CalendarItem:0x00005652b332dfa0
@ews_item=
:date_time_stamp=>{:text=>"2019-03-18T12:01:49Z"},
:appointment_reply_time=>{:text=>"2019-03-18T13:01:55+01:00"},

Однако попытка доступа с помощью «event.date_time_stamp» (или «event.appointment_reply_time») приводит к ошибке

undefined method `date_time_stamp' for <Viewpoint::EWS::Types::CalendarItem:0x00005622f83c3d38> (NoMethodError)

Вот код:

calendaritems = folder.find_items({:folder_id => folder.folder_id, :calendar_view => {:start_date => sd.rfc3339(), :end_date => ed.rfc3339()}})
calendaritems.each do |event|
  if event.recurring?
      puts "#{event.date_time_stamp} | #{(event.start-event.date_time_stamp).to_i} | #{event.organizer.email_address}"
      if (event.start-event.date_time_stamp).to_i == reminderDays
           executeSomething()
      end
  end
end

Я просматриваю повторяющиеся встречи для ресурса в течение недели.Поскольку через год они будут отброшены, планируется создать систему, которая будет напоминать людям о том, что это произойдет, чтобы они могли повторно забронировать ресурс.

Сначала я попытался использовать дату создания встречи (event.date_time_created), которая работает, как ожидалось, но затем заметил, что люди могут обновлять свои встречи, таким образом сбрасывая таймер на 1 год.

Вот почему мне также нужна дата последнего обновления.

1 Ответ

0 голосов
/ 20 июня 2019

В отладочном выводе, который вы указали, говорится, что переменная event имеет атрибут "ews_item", а затем хэш с атрибутом "date_time_stamp", поэтому попробуйте event.ews_item[:date_time_stamp]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...