2015-06-02 25 views
0

我while循環莫名其妙搗毀..我得到這個錯誤:紅寶石賽後返回無..喜歡它應該太

`block in scrape': undefined method `post_match' for nil 
:NilClass (NoMethodError) 

其返回nil像它應該通過串去後過了,它填充該數組就像它的假設一樣,但最後一次它碰到.post_match它失敗了,因爲它沒有...但它應該是一個零..不知道該怎麼辦?我想它只是填充數組,然後一旦parent_pic_first爲零,退出循環。

parent_pic_first = /\"hiRes\":\"/.match(pic).post_match 

    while parent_pic_first != nil 

     parent_pic = URI.extract(parent_pic_first, ['http']) 

     pic_list = [] 

     pic_list.push(parent_pic[0]) 

     parent_pic_first = /\"hiRes\":\"/.match(parent_pic_first).post_match 

     end 
+0

介意給確切的錯誤?並且作爲一個快速檢查,當你用'parent_pic_first.nil'替換'!= nil'時會發生什麼?' – MCBama

+0

用錯誤更新了文章..但是parent_pic_first.nil?是不是真的是我想要的..因爲如果它的零和我用parent_pic_first.nil?這將是真的..我想它是假的..基本上!。尼爾?如果有這樣的事情? – ToddT

+1

是的,但實際上是'!parent_pic_first.nil?'IIRC。有一陣子了。 – MCBama

回答

1

的錯誤是不是事實,parent_pic_firstnil,問題是,/\"hiRes\":\"/.match(parent_pic_first)nil。您正在嘗試調用nilpost_match的方法。 nil.post_match顯然不會起作用。

你需要在一些檢查,添加,以防止在nil調用post_match,所以是這樣的:

parent_pic_first = /\"hiRes\":\"/.match(pic).post_match 

while parent_pic_first != nil 
    parent_pic = URI.extract(parent_pic_first, ['http']) 
    pic_list = [] 
    pic_list.push(parent_pic[0]) 
    regex_return = /\"hiRes\":\"/.match(parent_pic_first) 
    if regex_return.nil? 
    break 
    else  
    parent_pic_first = regex_return.post_match 
    end 
end 
+0

太棒了!謝謝 – ToddT