nil をチェックしようとしていますが、常に次のエラーが発生します。
undefined method `[]' for nil:NilClass (NoMethodError)
コード
require 'csv'
require 'addressable/uri'
lines = CSV.readlines("test.csv")
a = lines.map{|s| {timestamp: s[0], url: s[1], ip: s[2]} }
a.each do |data|
if Addressable::URI.parse(data[:url]).query_values["v"].nil?
puts "nil"
else
puts "not nil"
end
end
ジョーの例から、これは私にとってうまくいったようです:
# test if each element exists
if data[:uri] = Addressable::URI.parse(data[:url]).query_values
# test if the value "v" exists
if Addressable::URI.parse(data[:url]).query_values["v"].nil?
puts "nil"
else
# the value "v" exists, so parse it out
puts "not nil"
v = Addressable::URI.parse(data[:url]).query_values["v"]
puts v
end
else
puts "no query values"
end
理解を深めるためにコメントを追加しました。
ありがとう。