16

我想在 rails 应用程序中对我的记录进行排序:

@ebms = Ebm.all
@ebms.sort_by! {|u| u.number}

u.number定义为整数!问题是 Rails 无法将其与以下内容进行比较nil

comparison of NilClass with 32400 failed

我能做些什么来避免这个错误?

4

2 回答 2

19

您可以number为 nil 时使用的比较添加默认值:

@ebms = Ebm.all
@ebms.sort_by! {|u| u.number || 0}

或者您可以按照此答案中的建议选择有数字的并对其进行排序,然后将没有数字的添加到列表中。

于 2013-08-01T08:44:29.667 回答
19

尝试将 nil 转换为整数如何?

   @ebms = Ebm.all
   @ebms.sort_by! { |u| u.number.to_i }
于 2013-08-01T08:55:00.273 回答