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