0
class Scraper

def initialize(options = {}) do
  @options = options
end

def scrape
  Wombat.crawl do
    base_url @options[:base_url]
    path @options[:path]
    some_data css: @options[:css]
  end
end

end

样品用法:

sample = Scraper.new({base_url: "someurl.com", path:"/random", css: ".regular"})
sample.scrape

我似乎无法在 scrape 方法中访问 @options 。这是一个范围界定问题,可能可以通过平面范围界定来解决,但我似乎无法绕过它。任何帮助,将不胜感激。

4

1 回答 1

3

可能正如 Marek Lipka 所说,上下文被instance_eval. 如果是这种情况,您无法访问实例的实例变量Scraper,但可以访问局部变量。做这个:

def scrape
  options = @options
  Wombat.crawl do
    base_url options[:base_url]
    path options[:path]
    some_data css: options[:css]
  end
end
于 2013-09-26T08:01:07.333 回答