我有一个worequest模型,它属于员工。
我想要一个显示employee_id = nil
的worequest范围我认为这应该有效:
scope :notassigned, where(:employee_id => nil)
但是,我收到了错误:
undefined method `notassigned' for nil:NilClass
这是视图代码:
<% @worequests.notassigned.each do |worequest| %>
答案 0 :(得分:1)
undefined method `notassigned' for nil:NilClass
这意味着您调用方法notassigned
的对象为nil
因此,在您的情况下,变量@worequests
为nil
。
<% @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| %>