2014-12-25 2 views
0

달력 시스템의 백엔드를 만들려고합니다. 달력은 Event의 목록 일뿐입니다. 합리적인 JSON 응답으로 구성하려고합니다. 내가 복제하려고하는 구조는 다음과 같습니다.배열에 해시 추가 및 삭제

eventsList = [ 
    { 'year' => 2014, 
    'events' => [{event data hash 1}, 
        {event data hash 2}] 
    }, 
    { 'year' => 2015, 
    'events' => [{event data hash 1}, 
        {event data hash 2}] 
    } 
] 

올바른 배열에 이벤트를 추가하는 데 문제가 있습니다. 아래에 나는 Event.all이 있으며 목록을 정렬하려고합니다.

events = Event.all 
eventList = [] 


events.each do |event| 
    #Creates a hash of the current event info 
    eventInfo = {'description' => event.description, 'startdate' => event.startdate} 

    eventMonthNumber = event.startdate.strftime('%m').to_i 
    eventMonthName = event.startdate.strftime('%B') 
    eventYearNumber = event.startdate.strftime('%Y').to_i 

    # Adds year to eventList if it isn't present 
    unless eventList.include?(eventYearNumber) 
     eventList << {'year' => eventYearNumber, 'events' => []} 
    end 

    # Tries to find current year hash in array and add to event key 
    currentYear = eventList.select {|event| event['year'] == eventYearNumber} 
    currentYear['events'] << eventInfo 
end 

나는 no implicit conversion of String into Integer 오류가 발생합니다. eventList.select이이 문제를 해결하는 올바른 방법인지 확실하지 않습니다.

도움이 필요하십니까? 나는이 현재의 구조에서 멀리는 작업 (?)을 선택 배열을 반환

eventList.detect 

에 대한

eventList.select 

을 교환 및 반품에게 하나 개의 항목을 감지하고 만든 변화를 이동했지만

+0

'event [ 'year']'의 데이터 유형은 무엇입니까? –

+4

예전에 캘린더 시스템을 만들었습니다. https://github.com/mzaragoza/rails-fullcalendar-icecube 이벤트가 추가되거나 삭제 될 때 나는 json에게 새로운 전화를합니다. 그러면 도움이 되길 바랍니다. – MZaragoza

+0

@ PrakashMurthy 정수입니다 – Deepak

답변

0

.

메리 크리스마스!

관련 문제