我想在rails应用程序中对记录进行排序:
@ebms = Ebm.all
@ebms.sort_by! {|u| u.number}
u.number
被定义为整数!
问题是Rails无法将其与nil
进行比较:
comparison of NilClass with 32400 failed
我该怎么做才能逃避这个错误?
答案 0 :(得分:14)
您可以为number
为零时使用的比较添加默认值:
@ebms = Ebm.all
@ebms.sort_by! {|u| u.number || 0}
或者您可以按照in this answer的建议选择带有数字的那些并对其进行排序,然后将没有数字的数据添加到列表中。
答案 1 :(得分:13)
如何尝试将nil转换为整数?
@ebms = Ebm.all
@ebms.sort_by! { |u| u.number.to_i }