所以基本上我正在做的是创建一个我从特定网址解析的网址列表...在这种情况下,基本网址是本地变量url
。
我想要做的是,将url
传递给my_list
- 现在工作正常......但是一旦我有了这个列表,我就想传递数组的第一个元素{{ 1}}在方法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
数组中的每个网址。
思想?
答案 0 :(得分: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])