我正在使用Ruby on Rails。订购后如何获得记录中的第一行? Ruby On Rails
我对模型进行了查询,但我想获取具有最高值的平均属性的一个寄存器。这是我的代码:
@dish = Dish.where("day = ? and week = ?", params[:day], params[:week])
@dish.order(:average)
@sug = @dish.first
@sug得到最低的ID,没有一个具有最高的平均记录。
我也试着这样说:
@sug = @dish.order(:average).limit(1)
,但它不工作要么。我怎样才能得到一个注册?
它的工作!我必须做的唯一改变是打电话订购(平均值::desc),因为我试图获得最高的一个。谢谢! – 2014-10-29 01:54:04
我认为更清楚地说你必须实际更新'@ dish',比如'@dish = @ dish.order(:average)',而不是说你必须“链接”调用。 – meagar 2014-10-29 01:54:14
@meager,我相信在这种特殊情况下,链接方法会更加清晰和简洁地显示如何完成TC要求的内容。由于这里没有更大的图片,我不能推测在更高层次上创建范围是否会有价值。你所建议的方法并不能保留更高层次的范围,只是为已经相对简单的东西添加了一行额外的代码;我没有看到这方面的附加价值。 – bigtunacan 2014-10-29 03:31:36