私の目標は、Rails Active Record クエリで単一のオブジェクトを返すことです。テーブルがcreated_at日付でソートされているときに、最新のレコードを取得したい。つまり、以下の例では、ID が 2 のレコードを返したいということです。以下の 4 つのクエリがすべて同じ結果を返す理由がわかりません。
販売テーブル レコード
+----+---------+-------+------------+----------------------------+
| ID | user_id | price | sale_date | created_at |
+----+---------+-------+------------+----------------------------+
| 1 | 1 | 200 | 2012-08-07 | 2012-10-02 23:01:46.706727 |
| 2 | 1 | 400 | 2009-05-11 | 2012-10-02 23:09:01.342879 |
+----+---------+-------+------------+----------------------------+
クエリ:
<%= current_user.sales.order("created_at").last.price %>
リターン: 200
<%= current_user.sales.order("created_at DESC").last.price %>
リターン: 200
<%= current_user.sales.order("created_at ASC").last.price %>
リターン: 200
<%= current_user.sales.last.price %>
リターン: 200
私も試しました:
<%= current_user.sales.last("created_at").price %>
戻り値:undefined method 'assert_valid_keys' for "created_at":String