红宝石模型中nil:NilClass的未定义方法`-'

时间:2019-12-05 05:33:55

标签: ruby-on-rails ruby activerecord

我在ruby的模型类中定义了一个方法,如下所示。但是当我尝试使用该方法时,我得到的是 nil:NilClass 的未定义方法'-'。我不知道要去哪里。

bus.rb

def seat_avaliable
    (self.seat - self.students.count)
end

1 个答案:

答案 0 :(得分:1)

您不能在nil对象上调用或链接方法。您正在尝试从nil中减去错误告诉您的内容。因此,您可以使用以下方法解决此问题:

def seat_avaliable
  if seat.is_a?(Integer) && students&.any?
    seat - students.count > 0
  end
end

将您的观看代码更改为此

<% if bus.seat_available %><td>Seat Available</td><% end %>