2013-06-14 3 views
0

나는 meetup 그룹에서 정보를 얻기 위해 rmeetup gem을 사용하고 있습니다. 나는, 결과에서 시간을 제외한 모든 작품 정보를 끌어 시도하고 나는이 '문자열로 Fixnum이라는 변환 할 수 없습니다'받을 때 는Fixnum을 String으로 변환 할 수 없습니다.

내 코드 :

<% 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 작동하지 및 문자열로 변환 할 수 없습니다.

+1

기술적으로'<%= %>'이 이미'to_s'를 호출하고 있으므로 명시 적으로 to_s를 호출 할 필요가 없습니다. –

+0

네가 맞아, 문제를 해결할 수있을 거라 생각했지만 그렇지 않았다. Fixnum을 String으로 변환하지 않습니다. 그것을 강제하는 방법이 있습니까? –

답변

1

Object까지 거의 모든 개체에는 to_s 메서드가 포함되어 있습니다.

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

이것은 문제가 <%= ... %>에 의해 호출 받고있는 to_s 방법에없는 것을 의미한다. rmeetup 보석의 event.rb 파일을 보면

, 당신은 알 수 있습니다 : 이것은 당신이 result.time으로 호출 인스턴스 변수는 유형 DateTime의 것을 의미

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

. 또한 그것은 문자열을 취하는 DateTime.parse을 사용하여 설정됩니다. Fixnum을 DateTime.parse에 전달하면 어떻게됩니까? 원래 RMeetup 보석은 지난 5 업데이트 된 시대

년부터의 시간, 밀리 초, 이벤트의

UTC 시작 시간 :

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

MeetUp API에 따르면, time는로 반환됩니다 여러 해 전에. 최신 포크를 사용하고 있습니까? 그렇지 않은 경우, MeetUp이 새로운 API를 릴리스 할 때 보석이 단순히 깨 졌을 수 있습니다. MeetUp API에 액세스하기위한 최신 보석을 찾거나 보석을 포크로 만들고 자신 만의 개조를 할 것을 제안합니다.

+0

안녕하세요, Charles, 답장을 보내 주셔서 감사합니다! 보석에 문제가 있었음을 알았고 (예상치 못한) 시간을 예상대로 변환하지 않았습니다. –

관련 문제