0

我正在使用 rmeetup gem 从聚会小组中获取信息。当我尝试从结果中提取信息时,除时间之外的所有工作都有效,并且我收到“无法将 Fixnum 转换为字符串”

我的代码:

   <% RMeetup::Client.api_key = "APICODE" 
    results = RMeetup::Client.fetch(:open_events, { topic: "business", city: "syracuse", state: "ny"}) %>
    <%= results.count %><br/>
    <%= results.each do |result| %>
        <%= result.name %> 
        <%= result.id %>
        <%= result.waitlist_count %>
        <%= result.utc_offset %>
        <%= result.created %>
        <%= result.time.to_s %>

        <hr/

    <% end %>

奇怪的是 .id、.waitlist_count、.utf_offset、.created 所有的工作都是数字,但 .time 不起作用,并且不允许我转换为字符串。

4

1 回答 1

1

几乎每个对象,一直到Object,都包含一个to_s方法。

Object.new.to_s #=> "#<Object:0x1668fa8>"

这意味着您的问题不在to_s被调用的方法中<%= ... %>

查看event.rbrmeetup gem 中的文件,您会注意到:

self.time = DateTime.parse(event['time'])

这意味着您调用的实例变量result.time的类型是DateTime. 另请注意,它是通过使用DateTime.parsewhich 接受一个字符串来设置的。那么当您将 Fixnum 传递给 时会发生什么DateTime.parse

DateTime.parse(42) #=> 'no implicit conversation of Fixnum into String'

根据MeetUp APItime返回为:

事件的 UTC 开始时间,以从纪元开始的毫秒数为单位

最初的 RMeetup gem 上次更新是在 5 年前。您使用的是更新的叉子吗?如果不是,则可能是由于 MeetUp 发布了新的 API,gem 已损坏。我建议要么找到一个更新的 gem 来访问 MeetUp API,要么分叉 gem 并进行自己的更改。

于 2013-06-14T17:44:25.873 回答