0

つまり、基本的に私が行っているのは、特定のURLから解析しているURLのリストを作成することです...この場合、ベースURLはローカル変数ですurl

私がやりたいのは、に渡すurlことですmy_list-これは今は正常に機能します...しかし、そのリストを取得したらlist、メソッドで宣言された配列の最初の要素をmy_listメソッドに渡しadd_categoryます。

コードを参照してください:

def add_category(url)
    new_url = url + '/web'  
end

url = 'http://www.someurl.com'

def my_list(url)
    root = Nokogiri::HTML(open(url))
    list = root.css("a").map do |link|
        [link.text, link[:href]]           
      end

end

my_list(url)

add_category(list[0])

ここでは、メソッドlistで指定したルールに従って、配列内のすべてのURLを変更します。add_category

考え?

4

1 に答える 1

3

メソッドのローカル変数を外部から参照することはできません。理由から「ローカル」と呼ばれています!:)

あなたのmy_listメソッドは、後で使用したいリストを単に生成しているようです。したがって、戻り値を(呼び出し元スコープ内の)ローカル変数に保存し、必要に応じて使用します。これをチェックしてください:

def add_category(url)
    url + '/web'  
end

url = 'http://www.someurl.com'

def my_list(url)
    root = Nokogiri::HTML(open(url))
    root.css("a").map do |link|
        [link.text, link[:href]]           
    end
end

list = my_list(url)

new_url = add_category(list[0][1])
于 2012-04-18T20:48:58.057 に答える