gpt4 book ai didi

ruby-on-rails - Ruby - NoMethodError(nil 的未定义方法 :NilClass):

转载 作者:行者123 更新时间:2023-12-02 13:12:28 27 4
gpt4 key购买 nike

我很难弄清楚我做错了什么。我的 ActiveRecord 查询返回 nil,我认为这导致引发 NoMethodError

这是我所拥有的:

@number_exclude_list = ["1234567890", "2223334545"] 
@available_number = UserNumber.where.not(:user_num => @number_exclude_list)

这会返回一组空行:

=> #<ActiveRecord::Relation []>

所以,我有:

if (@available_number.empty?)
inform_user_empty
else
do_my_other_function

但是,我得到:

`NoMethodError (undefined method 'inform_user_empty' for nil:NilClass)`

我尝试过:@available_number.blank?`@available_number.nil?

我仍然遇到相同的NoMethodError。关于我在这里做错了什么有什么想法吗?

最佳答案

异常文本 NoMethodError (undefined method 'inform_user_empty' for nil:NilClass) 表示这是对 nil< 的实例方法 #inform_user_empty 的调用 类的实例,并且由于 nil 没有实例方法 解释器抛出了该异常。我认为有两个主要原因:

  1. self 关键字变量具有 nil 值,我相信不是原因,因为您从 Controller 进行了调用,正如您所说的应用程序 Controller 。要确保 self 不是 nil,请将代码更改为以下代码:

    if @available_number.empty?
    p self
    self.inform_user_empty

    重新运行该操作,并查看结果。

  2. 异常是从另一个地方抛出的。因此,您必须在帖子中指定完整的跟踪日志。

关于ruby-on-rails - Ruby - NoMethodError(nil 的未定义方法 :NilClass):,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21694744/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com