[英]Why do I get 'undefined method `>=' for nil:NilClass' in do loop?
我有以下数据架构:
:tplangroups has_many :tplans
:tplans belongs_to :tplangroups
:tplans has attr_accessible :favrank
我需要从每个tplangroup获得具有最高favrank的tplan的id,下面的例程是我试图实现的:
<% @tplangroups.each_with_index do |tplangroup, index| %>
<% @highest_favrank = 0 %>
<% @highest_id = tplangroup.tplans[0] %>
<% tplangroup.tplans.each do |tplan| %>
<% if tplan.favrank >= @highest_favrank %>
<% @highest_favrank = tplan.favrank %>
<% @highest_id = tplan.id %>
<% end %>
<% end %>
#does stuff with tplangroup
<% end %>
但是,我不断收到以下错误:
undefined method `>=' for nil:NilClass
有任何想法吗? 我真的不知道为什么它会抛出这个错误。 我知道我引用的所有属性/变量都有值,我已经测试了这个。 我不确定我哪里出错了,先谢谢!
错误信息非常明显:您的tplan.favrank
为nil,而Ruby无法使用>=
与@highest_favrank
进行比较。
在尝试使用compact
之前,应该从该数组中删除nils,或者你应该弄清楚为什么你会得到一个nil。
不幸的是,我们无法告诉您,因为您没有提供显示值如何创建的代码,也没有数据我们可以尝试重新创建您的结构。
也许你的桌子有零值? 也许你的代码没有捕获每个条件,允许nils泄漏。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.