我在试图弄清楚我做错了什么时遇到了一些困难。我的ActiveRecord
查询正在返回nil
,我认为这导致NoMethodError
被引发。Ruby - NoMethodError(未定义的方法为零:NilClass):
这是我有:
@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
。关于我在这里做错的任何想法?
我相信,这不是适当的地方'inform_user_empty'的例外:因为你已经调用self.inform_user_empty',是'self'' nil'吗? –
我不太了解你的评论,但'inform_user_empty'函数在'application_controller.rb'中。 – Dodinas
是的,但你的错误说:'nil:NilClass'的未定义方法'inform_user_empty',换句话说,这是通过调用'nil。inform_user_empty',但是因为'inform_user_empty'函数在'application_controller.rb'中。它不可能。将'inform_user_empty'替换为'self.inform_user_empty'。先插入'p self',然后再试一次 –