我在試圖弄清楚我做錯了什麼時遇到了一些困難。我的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',然後再試一次 –