【问题标题】:Rails scope test for nil用于 nil 的 Rails 范围测试
【发布时间】:2013-08-05 20:41:33
【问题描述】:

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

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

我认为这应该可行:

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

但是,我得到了错误:

undefined method `notassigned' for nil:NilClass

这是查看代码:

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

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:
    undefined method `notassigned' for nil:NilClass
    

    这意味着你调用notassigned方法的对象是nil

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

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

    【讨论】:

    • 我的错 - 我忘了添加控制器代码来获取记录 - 谢谢!
    【解决方案2】:

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

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

    控制器

    @worequests = WoreQuest.notassigned
    

    查看

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-19
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多