0

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

我想要一个显示 employee_id = nil 的 wearquest 范围

我认为这应该工作:

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

但是,我得到了错误:

undefined method `notassigned' for nil:NilClass

这是视图代码:

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

2 回答 2

1
undefined method `notassigned' for nil:NilClass

这意味着您调用该方法的对象notassignednil

所以,在你的情况下,变量@worequestsnil.

<% @worequests.notassigned.each do |worequest| %>
   ^
   # This is the nil that raised the error
于 2013-08-05T20:44:02.090 回答
0

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

尝试像这样运行您的查询:

控制器

@worequests = WoreQuest.notassigned

看法

<% @worequests.each do |worequest| %>
于 2013-08-05T20:47:49.050 回答