Joh*_*ith 11 ruby sorting ruby-on-rails
我想在rails应用程序中对记录进行排序:
@ebms = Ebm.all
@ebms.sort_by! {|u| u.number}
Run Code Online (Sandbox Code Playgroud)
在u.number被定义为整数!问题是Rails无法与它进行比较nil:
comparison of NilClass with 32400 failed
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能逃避这个错误?
Mat*_*att 16
您可以number为nil 时将使用的比较添加默认值:
@ebms = Ebm.all
@ebms.sort_by! {|u| u.number || 0}
Run Code Online (Sandbox Code Playgroud)
或者您可以按照此答案中的建议选择带有数字的那些并对其进行排序,然后将没有数字的那些添加到列表中.
小智 13
如何尝试将nil转换为整数?
@ebms = Ebm.all
@ebms.sort_by! { |u| u.number.to_i }
Run Code Online (Sandbox Code Playgroud)