nil:NilClass Ruby 的未定义方法“first”

undefined method `first' for nil:NilClass Ruby

我对这个错误感到困惑。我在任何地方都没有 "firsts" 得到它。 . .

调用错误的行如下:

= @wiki.creator.name

我的 wiki 有很多用户,我的用户有很多 wiki,通过 table 称为关系(具有属性:wiki_id、:user_id、:creator_created ). Creator 是我在我的 wiki 模型中定义的方法:

has_many :relationships
has_many :users, through: :relationships

def creator
  self.relationships.find_by(:creator_created == true).user
end

这条线昨天还在工作,我没有做任何应该改变它的事情。 . .但现在我得到 "Undefined method 'first' for nil:Nilclass."

我查了,@wiki和它的相关关系不为零,所以不知道是什么。 . .

有什么想法吗?

基本上 find_by() 最终会在内部调用 first,这可能是您的错误来源。

不确定你为什么会得到 nil,因为你的 find_by 应该解析为 where(false) 这应该仍然是一个有效的对象,但尝试将其修复为评论者的内容有建议。