我想将以下格式返回的字符串更改为一个日期,该日期显示自上次向客户下订单以来的月天数,我在页面上有以下代码来获得结果-
<% @lastorder = Order.select("DateCreated").where("customer_id == ?", customer.id).order("Datecreated desc").find(:all, :limit => 1) %>
但这会返回以下格式-
[#<Order DateCreated: "2013-01-09 00:00:00">]
也许有更好的方法可以做到这一点,但我目前还没有意识到。
我会这样重写您的查询:
@last_order = Order
.where(customer_id: customer.id) # No need to use prepared statement here
.order('DateCreated DESC')
.pluck('DateCreated') # Directly select 1 column
.first() # Only select the first record
如果你想用文字显示时间距离,你应该使用rails助手:distance_of_time_in_words_to_now(@last_order)
简介:刚发现比distance_of_time_in_words_to_now
是time_ago_in_words
的别名,更短。