IRB 需要 Rails 4.0 中的 HTML 模块



我对 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>'

所以问题是,你想从你想使用rails console irb使用它。

如果您需要从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>

最新更新