0

次の形式から返された文字列を、顧客からの最後の注文から何ヶ月日かを示す日付に変更したいのですが、結果を取得するためにページに次のコードがあります-

<% @lastorder = Order.select("DateCreated").where("customer_id == ?", customer.id).order("Datecreated desc").find(:all, :limit => 1) %>

しかし、これは次の形式を返します-

 [#<Order DateCreated: "2013-01-09 00:00:00">]

これを行うにはおそらくもっと良い方法がありますが、現時点では気づいていません。

4

1 に答える 1

1

私はあなたのクエリをそのように書き直します:

@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ください。

于 2013-02-05T10:36:47.847 に答える