1

私は現在、Ruby 1.8.7 を使用しています (ホスティング プロバイダーが必要としています... 間もなく終了します)。

それはさておき、次のエラーが表示されます。

NoMethodError (private method `gsub!' called for Thu Oct 10 11:56:28 UTC 2013:Time):
  app/models/time_tracked.rb:140:in `search'
  app/models/time_tracked.rb:140:in `sort!'
  app/models/time_tracked.rb:140:in `search'

問題の行 (140) は次のとおりです。

sub.sort! { |x, y| Time.zone.parse(x[1]) <=> Time.zone.parse(y[1]) } if sub.length > 1

私が理解しているように、文字列ではなく時間オブジェクトを解析しようとしているため、エラーがスローされますが、これを修正する方法は不明です。

どんな援助も大歓迎です。ありがとう!

更新: Cortex の回答は最初の質問を解決しましたが、それを実装すると、私の見解では次のようになります。

ActionView::Template::Error (private method `sub!' called for Thu Oct 10 11:56:28 UTC 2013:Time):
    23:<td><strong><%= (v.index(item) == 0) ? k : '' %></strong></td>
    24:<td><%= item[0] %></td>
    25:<td>
    26:<%= DateTime.strptime(item[1], '%Y-%m-%d %H:%M ').in_time_zon e(Time.zone).strftime("%m/%d/%Y %I:%M %p")%>
    27:</td>
    28:<td>
    29:<%= DateTime.strptime(item[2], '%Y-%m-%d %H:%M:%S').in_time_z
one(Time.zone).strftime("%m/%d/%Y %I:%M %p")%>

助言がありますか?ありがとう!

4

1 に答える 1

1

x[1]オブジェクトのように見えTimeます。だから試してください:

sub.sort! { |x, y| Time.zone.parse(x[1].to_s) <=> Time.zone.parse(y[1].ti_s) } if sub.length > 1

これを Ruby 2 でテストしました。Ruby 1.8.7 で動作することを願っています。

于 2013-10-16T22:11:43.710 に答える