2016-09-17 2 views
-1

Ich verstehe nicht, warum mein Ruby-Code nicht funktioniert, während und mechanisieren.Probleme mit While-Schleife und mechanisieren 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 

Meine while-Schleife i Arbeit aber Schleife j nicht auf der nächsten Seite geht, glaube ich, meine Logik ist nicht gut, aber ich weiß nicht, wo das Problem ist.

Antwort

2

Sie versuchen, die Seitenzahl in die URL der Seite zu interpolieren. Die Interpolation funktioniert jedoch nur mit doppelten Anführungszeichen (").

ändern

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

zu

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

danke es funktioniert! Ich bin ein Anfänger mit Ruby Ich wusste nicht, Interpolation funktioniert nur mit Anführungszeichen – pldlt