0

我正在尝试拆分该created_at方法返回的值。

我正在获取一个对象 ( item) 并获取它的创建时间。我不想要整个结果,我只对日、月和年感兴趣。我怎样才能让它工作?

<% @items_in_basket.each do |item| %>
<% splliter = item.created_at.split(" ") %> 
<% time = @splliter[0] %>

结果我得到了这个:

undefined method 'split' for Wed, 31 Jul 2013 16:44:37 UTC +00:00:Time
4

2 回答 2

5

created_at返回一个实例ActiveSupport::TimeWithZone,您可以简单地调用daymonthyearon 来获取日期的这些部分。例子:

<% @items_in_basket.each do |item| %>
  Day: <%= item.created_at.day %>
  Month: <%= item.created_at.month %>
  Year: <%= item.created_at.year %>
<% end %>

这种方法将比解析返回的字符串格式可靠得多to_s

于 2013-07-31T17:17:22.553 回答
1

split在使用字符串方法(http://ruby-doc.org/core-2.0/String.html#method-i-split )之前先尝试将日期转换为字符串。

<% splliter = item.created_at.to_s.split(" ") %> 

您收到该错误的原因是因为Timehttp://www.ruby-doc.org/core-2.0/Time.html)类没有split方法。

于 2013-07-31T17:11:17.373 回答