当我尝试将字符串分配给变量时,我在Ruby上遇到以下错误:
undefined method 'has_key?' for nil:NilClass (NoMethodError)
生成错误的代码如下:
uri = !@meta.has_key?("offset") ? "#{@@user_uri}?order=asc" : "#{@@user_uri}?per_page=#{per_page}&page=#{@meta['offset']}?order=asc"
如果删除分配并将其替换为puts,则按预期工作
puts !@meta.has_key?("offset") ? "#{@@user_uri}?order=asc" : "#{@@user_uri}?per_page=#{per_page}&page=#{@meta['offset']}?order=asc"
> http://example.com/users?order=asc
知道发生了什么事吗?
答案 0 :(得分:1)
当您使用puts
时,@meta
似乎有不同的值。请仔细检查。
在任何情况下,为什么不尝试@meta
之前确保nil
不是Hash
?
return if @meta.nil?
uri = !@meta.key?("offset") ? "#{@@user_uri}?order=asc" : "#{@@user_uri}?per_page=#{per_page}&page=#{@meta['offset']}?order=asc"
我为密钥更改了has_key?
?作为has_key?
has been deprecated