ruby - 如何访问变量内的数据?错误:未定义的方法
问题描述
打印变量的内容会给我一堆数据。我想访问部分数据,但出现错误。
我正在使用 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
打印变量“event”,可以看到我需要的数据:“date_time_stamp”(或“appointment_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 年计时器。
这就是为什么我还需要上次更新的日期。
解决方案
您提供的调试输出表明该event
变量有一个属性“ews_item”,然后它有一个带有属性“date_time_stamp”的哈希,所以试试event.ews_item[:date_time_stamp]
推荐阅读
- android - firebasetool的recyclerview聊天UI
- swift - 类型“DBTweet”不符合协议“可解码”
- php - 有没有办法在表单本身上显示错误但表单操作重定向到另一个 php 文件?
- android - 在改造获取请求 A 中将数组作为参数发送
- java - 与 Google Guava 的范围联合
- c# - C# - 将 Json 反序列化为字典
- python - 如何正确检查碰撞?
- postgresql - 从标准 App Engine 环境迁移到 flex App Engine 环境,现在 Cloud SQL 将无法连接
- javascript - 在 ReactiveForms 中,Materalize CSS Datepicker 是空白的
- reactjs - reducer 不更新状态