未定义的方法`任何?'为零:NilClass

时间:2014-07-21 00:39:03

标签: ruby-on-rails nomethoderror

这似乎是一个简单的问题,但我不能为我的生活指出问题。

摘录来源:Show.Html.Erb

  <% if @jobs.any? %>

users_controller.rb

def show
    if current_user.role == 4
        @jobs = Job.where(jsender_id: current_user.id).order('created_at DESC')
    else
    end
end

我的工作表是空的,这让我首先假设@jobs被实例化为'Nil',因为数据库中没有记录。我创建了一些记录但仍然得到No Method错误。我在这里错过了什么吗?

Job.rb for good measure:

class Job < ActiveRecord::Base
   belongs_to :jsender, :class_name => 'User'
   belongs_to :jrecipient, :class_name => 'User'
end

1 个答案:

答案 0 :(得分:3)

您只在@jobs时设置current_user.role == 4,因此我们可以具体地说current_user.role不是4。不可能。如果是,@jobs不能为零,因为.where无法返回nil,如果没有匹配的记录,则返回一个空数组。

我们无法帮助您,除了告诉您弄清楚current_user.role的价值是什么,以及为什么它不符合您的期望。