0

我对 ruby​​ 和 rails 都是全新的,并且在从 irb 命令行测试一些代码时遇到了一个非常基本的问题。

我想获取一个任意的 html 字符串,并能够使用 rails HTML 模块对其进行 css 选择器:http: //api.rubyonrails.org/classes/HTML/Selector.html

我在根目录或我的 rails 应用程序中,只想包含这个模块,从字符串创建一个“元素”,然后运行一个选择器来查看它是否匹配。

我想要做的是以下事情:

irb> require 'html'
irb> elem = HTML::Document('<div class="nothing"></div>')
irb> sel = HTML::Selector('div.nothing')
irb> matches = sel.select(elem)

但是,我要求 'html' 的天真尝试失败了:

irb(main):016:0> require 'html'
LoadError: cannot load such file -- html
    from /usr/local/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /usr/local/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from (irb):16
    from /usr/local/bin/irb:12:in `<main>'
4

1 回答 1

1

所以问题是,你想从你想使用它的irb地方使用它rails console

如果您需要使用它,irb则必须要求正确的路径:

require "action_view"
=> true
require "action_view/vendor/html-scanner"
=> true
HTML::Selector.new "form.login[action=/login]"
=> #<HTML::Selector:0x007f8b5c0fb268 @source="form.login[action='/login']", @tag_name="form", @attributes=[["class", /(^| )login($| )/], ["action", /^\/login$/]], @pseudo=[], @negation=[], @alternates=[], @depends=nil>
于 2013-10-25T22:09:24.520 回答