-1

次の形式のハッシュを使用しています。

{2013-09-19 11:37:18 UTC=>10.780000000000001, 2013-09-21 11:37:18 UTC=>2.55, 2013-09-23 08:42:25 UTC=>2.55}

次に、この形式2013-09-21の日付値を持つループがあります。日付値に従ってハッシュ内の値を見つけようとしています。

これが私が試みていることです:

%div "#{@data1.select{|key, hash| key.strftime('yyyy-MM-dd').to_s == day.to_s }}"
%div "#{@data2.select{|key, hash| key.to_s == day.to_s }}"

しかし、どちらの場合も、空の配列を取得しています。1 つの方法は、ハッシュ全体をループして値を比較することですが、これはおそらくハッシュ内の項目を見つけるのにあまり効果的な方法ではありません。

上記の方法を試してselectいますが、適切に使用する方法がわかりません。

4

2 に答える 2

0

問題は、DateTime を Date と比較することです (両方のフォーマットを考えると)。

だから、あなたはそのようなことをするかもしれません:

%div "#{@data1.select{|key, hash| key.to_date.to_s == day.to_s }}"
%div "#{@data2.select{|key, hash| key.to_date.to_s == day.to_s }}"
于 2013-09-24T14:34:41.290 に答える