0

在我的 sinatra 应用程序中,我有以下代码

haml :"page123", locals:
      {
        items: (my_data.sort ->(item1, item2){ item2[:date] <=> item1[:date]}), 
      }, 
      layout: need_layout?

我需要做的是按顺序对 my_data 进行date排序descending。但是,我在这里收到错误

wrong number of arguments(1 for 0)

我做错什么了?

4

1 回答 1

3

Enumerable#sort不接受任何论据。您实际上是将Lambda对象作为方法的第一个也是唯一的参数传递sort。您可以做的是提供一个用于对集合进行排序的块。

wrong number of arguments(1 for 0)是说该方法被赋予了1参数和预期0

试试这个:

my_data.sort{ |a, b| b[:date] <=> a[:date] }
于 2012-12-28T15:49:59.827 回答