未定义的方法`第一个'为nil:NilClass Ruby

时间:2015-01-27 21:14:20

标签: ruby-on-rails has-many-through

我对此错误感到困惑。我没有任何"第一次"无处不在。

调用错误的行如下:

= @wiki.creator.name

我的wiki有很多用户,我的用户有很多wiki,通过名为Relationships的表(属性: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

这条线昨天正在运作,我还没有完成任何应该改变它的事情。 。 。但现在我得到了#34; Undefined method' first'为零:Nilclass。"

我已经查过了,@ wiki及其相关关系不是零,所以我不知道是什么。 。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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

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