我的目标是在 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