我正在尝试拆分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
答案 0 :(得分:5)
created_at
会返回ActiveSupport::TimeWithZone
的实例,您只需拨打day
,month
或year
即可获取该日期的部分内容。例如:
<% @items_in_basket.each do |item| %>
Day: <%= item.created_at.day %>
Month: <%= item.created_at.month %>
Year: <%= item.created_at.year %>
<% end %>
这种方法比解析to_s
返回的字符串格式更可靠。
答案 1 :(得分:1)
在使用字符串方法split
(http://ruby-doc.org/core-2.0/String.html#method-i-split)之前,请先尝试将日期转换为字符串。
<% splliter = item.created_at.to_s.split(" ") %>
您收到该错误的原因是Time
(http://www.ruby-doc.org/core-2.0/Time.html)类没有split
方法。