我有以下几点:
def self.parse_categories
categories = @data.css('#refinements ul').first
if categories.css('li:nth-child(1) a span').text == "Pet Supplies"
@categories_hash = {}
categories_category = categories.css('li:nth-child(2) strong').text
categories.css('li').drop(2).each do | categories |
categories_title = categories.css('.refinementLink').text
categories_count = categories.css('.narrowValue').text[/[\d,]+/].delete(",").to_i
@categories_hash[:categories] ||= {}
@categories_hash[:categories][categories_category] ||= {}
@categories_hash[:categories][categories_category][categories_title] = categories_count
end
else
@categories_hash = {}
end
return @categories_hash
end 现在代码在包含元素:#refinements ul的页面中工作得很好,但是代码在没有元素的页面中崩溃了,我该如何做才能在没有#refinements ul的情况下不发生任何事情呢?比如忽略代码而不抛出错误,或者直接跳到else
发布于 2013-08-22 17:40:41
例如,就像这样
def self.parse_categories
categories = @data.css('#refinements ul').first
return unless categories
# carry on
end发布于 2013-08-22 17:56:14
问题是当@data.css('#refinements ul')为nil时。对吗?所以,先试着把它转换成数组。categories = @data.css('#refinements ul').to_a.first
https://stackoverflow.com/questions/18376806
复制相似问题