我定期得到这个例外:
NotImplementedError: method `at' called on terminated object
在这行代码上:
next if Hpricot(html).at('a')
这个错误是什么意思?我怎么能避免它?
答案 0 :(得分:2)
您正在使用的库使用自定义C扩展名。在C扩展中,它试图在已经被垃圾收集的Ruby对象上调用一个方法。
这不会发生在纯Ruby中,因为垃圾收集器只会释放不再可以从任何引用访问的对象。但是在C中,可以在垃圾收集器没有检查的地方(例如,编译器可能已将变量放入CPU寄存器中)对Ruby对象保留引用。
答案 1 :(得分:0)
这可能是一个链接问题。检查您是否未将扩展名链接两次。