Ruby on rails NoMethodError(在10月10日星期四11:56:28 UTC 2013:Time调用的专用方法'gsub!']:

Ruby on rails NoMethodError(在10月10日星期四11:56:28 UTC 2013:Time调用的专用方法'gsub!']:,ruby-on-rails,time,Ruby On Rails,Time,我目前使用的是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.r

我目前使用的是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])如果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")%>
ActionView::Template::Error(在10月10日星期四11:56:28 UTC 2013:Time调用了私有方法'sub!'):
23:
24:
25:
26:
27:
28:
29:

有什么建议吗?谢谢

看起来像
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
sub.sort!{x,y | Time.zone.parse(x[1].to|s)Time.zone.parse(y[1].ti|s)}如果sub.length>1

我在Ruby 2上测试了这个。希望它能在Ruby 1.8.7中工作。

看起来像是
x[1]
是一个
时间
对象。因此,请尝试:

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

我在Ruby 2上测试了这个。希望它能在Ruby 1.8.7中工作。

sub有什么价值?它看起来像一个成对数组。sub有开始日期时间和结束日期时间
sub
有什么值?它看起来像是一个pairs.sub数组,有一个开始日期时间和结束日期时间谢谢,这让我克服了最初的错误,但是现在我在我的视图中看到了新的错误,如上面更新中所述。视图代码在上面。错误出现在第26行和第29行。它不喜欢项[1]和项[2]的格式。如果我使用你的代码,只输出项[1]和项[2],然后它就会呈现。给我
项[1]
的值。原样:2013-01-20 22:43:24,但我需要它的格式:01/20/2013 10:43 PMAssuming
项[1]
是一个字符串,它在Ruby 2.0.0中对我有效。谢谢,这让我克服了最初的错误,但是现在我在我的视图中看到了新的错误,正如上面我的更新中所发布的。视图代码在上面。错误出现在第26行和第29行。它不喜欢项[1]和项[2]的格式。如果我使用您的代码,只需输出项[1]和项[2],然后它就会呈现。给我
项[1]
的值。原样:2013-01-20 22:43:24,但我需要它的格式为:01/20/2013 10:43 PMAssuming
项[1]
是一个字符串,它在Ruby 2.0.0中对我有效。