2016-09-17 4 views
-1

Я не понимаю, почему мой рубиновый код не работает с механизацией.Смуты с петлей и механизацией Ruby

require 'mechanize' 
mechanize = Mechanize.new 
j = 1 
while j <= 30 do 
    page = mechanize.get('http://mywebsite.com/events?page=#{j}'); j+=1 
    i = 1 
    while i <= 35 do 
     link = page.link_with(:id => /detail-link-#{i}/); i += 1 
     mylink = link.click 
     url = mylink.uri 
     title = mechanize.get(url) 
     puts title.at('.container h1') 
    end 
end 

Мои в то время как петля i работа, но цикл j не перейти к следующей странице, я думаю, что моя логика не хорошо, но я не знаю, где проблема.

ответ

2

Вы пытаетесь интерполировать номер страницы на URL страницы. Но интерполяция работает только с двойными кавычками (").

Изменить

page = mechanize.get('http://mywebsite.com/events?page=#{j}'); j+=1 

в

page = mechanize.get("http://mywebsite.com/events?page=#{j}"); j+=1 
+0

спасибо, это работает! я новичок с рубином, я не знал, что интерполяция работает только с двойными кавычками – pldlt