2012-12-28 94 views
0

参数在我的末日应用程序,我有数错误的拉姆达

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

的代码是什么,我需要做的是在date为了descending排序my_data。但是,我在这里得到错误

wrong number of arguments(1 for 0) 

我做错了什么?

回答

3

Enumerable#sort没有任何参数。实质上,将Lambda对象作为sort方法的第一个也是唯一的参数传递。你可以做的是提供一个块用于排序集合。

wrong number of arguments(1 for 0)表示该方法被给出1参数并且预期0

试试这个:

my_data.sort{ |a, b| b[:date] <=> a[:date] } 
+0

事实上,我将lambda对象,而不是PROC。 –

+0

@Alan gotcha。谢谢! – Kyle