Rails范围测试为零

时间:2013-08-05 20:41:33

标签: ruby-on-rails

我有一个worequest模型,它属于员工。

我想要一个显示employee_id = nil

的worequest范围

我认为这应该有效:

    scope :notassigned, where(:employee_id => nil)

但是,我收到了错误:

undefined method `notassigned' for nil:NilClass

这是视图代码:

    <% @worequests.notassigned.each do |worequest| %>

2 个答案:

答案 0 :(得分:1)

undefined method `notassigned' for nil:NilClass

这意味着您调用方法notassigned的对象为nil

因此,在您的情况下,变量@worequestsnil

<% @worequests.notassigned.each do |worequest| %>
   ^
   # This is the nil that raised the error

答案 1 :(得分:0)

问题是您在空实例变量上调用范围,因此undefined method for nil:NilClass。创建范围时,实际上只是创建一个类方法,因此必须在相应的类上运行它,而不是该类的实例。

尝试运行您的查询:

<强>控制器

@worequests = WoreQuest.notassigned

查看

<% @worequests.each do |worequest| %>