即使我需要Nokogiri
并初始化变量,我的方法也无法访问Nokogiri方法。我想这样做:
class Requester
require 'nokogiri'
def initialize(body)
@body = body
end
def destination
@body.at_css('destination')
end
end
然后我传递body
,这是Nokogiri
文档。
mess = Requester.new(body)
当我这样做时,我得到一个“没有方法错误”:
mess.destination
我不明白。如果我require
,我认为我的班级将拥有所有的Nokogiri方法。
完整错误在at_css
上,如下所示:
NoMethodError (undefined method `at_css' for #<Requester:0x007f685d971478>
答案 0 :(得分:-1)
您感到困惑 p x y i meanmarkstable
1 1 4 0 0 0.5588339
2 2 4 1 0 1.8035799
3 3 4 2 0 3.3992581
4 4 4 3 0 3.2959390
5 5 4 4 0 2.1132312
6 6 3 0 0 1.6559496
7 7 3 1 0 5.5518658
8 8 3 2 0 10.5182801
9 9 3 3 0 10.1597853
10 10 3 4 0 6.2832065
11 11 2 0 0 2.5529727
12 12 2 1 0 8.6038936
13 13 2 2 60 4.7103612
14 14 2 3 40 7.6160733
15 15 2 4 0 10.0581368
16 16 1 0 0 1.6560550
17 17 1 1 0 5.5599181
18 18 1 2 0 10.6956613
19 19 1 3 0 11.0335128
20 20 1 4 0 7.7616822
21 21 0 0 0 0.5589243
22 22 0 1 0 1.8099875
23 23 0 2 0 3.5421055
24 24 0 3 0 4.0856978
25 25 0 4 0 2.1128894
和Will install Watch App called with bad bundle identifier '(null)
。
require
加载文件或gem。
include
包含另一个对象的方法。
require
:
include
a.rb
:
module A
def hello
"hello world"
end
end
但是,你真的需要重新考虑你想要做的事情。你不能包括一个类 - 你扩展类。您要查找的对象是班级b.rb
。
如果您正在尝试构建文档搜寻器,则可以使用委托者模式:
require 'a'
class B
include A
end
puts B.new.hello # hello world
或者您将创建Nokogiri::HTML::Document
的子类。