내가 레일 액티브 그룹 쿼리가에 날짜를 구문 분석하는 방법 :루비 - 배열
a = Product.select("date(date) as date, count(id) as products").group("date(date)").to_a
을 내가 배열의 모든 날짜의 형식을 변경하고 싶습니다.
a.map { |s, i| [Date.parse(s).to_time.strftime("%Y-%m-%dT%H:%M:%S"), i] }
그러나, 나는 can't convert Product into String
오류가 점점 오전 : 나는 이런 식으로 뭔가있을 거라 생각 했어요. 배열에서 날짜를 파싱하고 형식을 변경하려면 어떻게합니까?
편집 : 여기
내가 찾고 있어요 출력의 예입니다.
이 테이블을 감안할 때 :create_table :products do |t|
t.date :date
end
궁극적으로, 나는 위의 그룹 쿼리를 기반으로 JSON 출력을 만들려고합니다. 같은 뭔가 :
[{"products":23,"date":"2012-06-15T00:00:00"}, {"products":26,"date":"2012-06-16T00:00:00"}]
감사합니다. 그것은 날짜를 변환하는 데 일했습니다. 그러나 이제 배열은 모든 i 값에 대해 nil을 표시합니다. 예를 들면 다음과 같습니다 :'% = debug a %>'! ruby / object : 제품 속성 :! binary "ZGF0ZQ ==": '2012-05-27'! binary "Y2hlY2t0ZXN0cw ==": 1'; 그러나, <% = a.map {| s, i | [Date.parse (s.date) .to_time.strftime ("% Y- % m- % dT % H : % M : % S"), i]} %>'yield [' "2012-05-27T00 00 : 00 ", nil]]'. 왜 i 값이 0으로 변경됩니까? – diasks2
글쎄, 나는 아직도 블록의 'i' 매개 변수에서 얻을 것으로 예상되는 것이 확실하지 않습니다. ['Array # map'] (http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-map) 메서드는 단일 매개 변수만을 블록에 전달합니다. 정렬. 예를 들어's' 매개 변수에는 현재'Product'가 있고 두 번째'i' 매개 변수에는 아무것도 없습니다. –
혼란을 드려 죄송합니다. 내 목표는 해시 배열'a = Product.select ("date (date) as date, count (id) as products"). group ("date (date)"). to_a'로 끝나는 것입니다. yyyy-mm-dd 형식의 날짜는 yyyy-mm-ddThh : mm : ss 형식입니다. 그것이 최선의 방법이 아니라면 반드시'Array # map'을 사용할 필요는 없습니다. – diasks2