这让我发疯了。我基本上试图检查saved_category_parent是否匹配parsed_category_parent
它说saved_category_parent属于类Array,而parsed_category_parent(用nokogiri抓取)表示它是一个字符串。
因此,当我尝试检查以下内容时,它总是返回false,因为它将第一个与 [“first”]进行比较
我只需要删除愚蠢的括号。我试过to_s,它实际上使它变得更糟......它增加了更多括号和更多括号。
if saved_category_parent == parsed_category_parent && saved_category == parsed_category
//code
end
继承我的其他代码
categories = ["#first > sub-cat", "#second > sub-cat-2"]
# Parse through saved categories and break them up
categories.each do |category|
saved_category_parent = category.scan(/#([^ ]*)/)[0]
saved_category = category.scan(/.* > (.*)$/)[0]
@rss = Nokogiri::HTML(open(open(link.get_attribute('href'))))
@rss.css('.col').each do |forumblock|
parsed_category_parent = forumblock.css('h4 a').inner_text
forumblock.css('li a').each do |forumlink|
parsed_category = forumlink.content
# p saved_category_parent
# p parsed_category_parent
# p saved_category
# p parsed_category
p saved_category_parent
p saved_category
end
end
end
答案 0 :(得分:1)
如果你的数组只有一个元素,你可以这样做:
# creating the values manually for the example
parsed_category_parent = "first"
saved_category_parent = ["first"]
# solution
parsed_category_parent = saved_category_parent[0]
您可以在IRB中尝试查看它是否有效。
通过使用[]运算符,您将访问数组的第一个字符串元素,从而将两个字符串进行比较,而不是将字符串与包含字符串的数组进行比较。
您还可以使用其他方法访问数组中的元素,如“first”。
答案 1 :(得分:0)
使用Array#first
获取数组的第一个(或唯一)元素:
irb> ["first"].first
=> "first"