Dod*_*nas 5 null ruby-on-rails exception nomethoderror
我在弄清楚我做错了什么时遇到了一些困难.我的ActiveRecord查询正在返回nil,我认为这会导致NoMethodError被引发.
这就是我所拥有的:
@number_exclude_list = ["1234567890", "2223334545"]
@available_number = UserNumber.where.not(:user_num => @number_exclude_list)
Run Code Online (Sandbox Code Playgroud)
返回一组空行:
=> #<ActiveRecord::Relation []>
Run Code Online (Sandbox Code Playgroud)
那么,我有:
if (@available_number.empty?)
inform_user_empty
else
do_my_other_function
Run Code Online (Sandbox Code Playgroud)
但是,我得到:
`NoMethodError (undefined method 'inform_user_empty' for nil:NilClass)`
Run Code Online (Sandbox Code Playgroud)
我试过了:@available_number.blank?和`@available_number.nil?
我仍然得到相同的NoMethodError.我在这里做错了什么想法?
请在控制台中运行以下行:
@available_number = UserNumber.where.not(:user_num => @number_exclude_list)
Run Code Online (Sandbox Code Playgroud)
它返回一个,ArgumentError: wrong number of arguments (0 for 1+)因为它不是检查 Rails activerecord 中条件的方法NOT IN。
将其替换为:
User.where('user_num NOT IN (?)',@number_exclude_list)
Run Code Online (Sandbox Code Playgroud)
然后执行以下操作:
if @available_number == nil
inform_user_empty
else
do_my_other_function
end
Run Code Online (Sandbox Code Playgroud)
希望能解决这个问题。如果它真的对您有帮助,请告诉我。
| 归档时间: |
|
| 查看次数: |
37756 次 |
| 最近记录: |