我正在尝试dc:title使用xpath 拉出元素.我可以使用以下代码提取元数据.
doc = <<END
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf" version="2.0">
<metadata xmlns:dc="URI">
<dc:title>title text</dc:title>
</metadata>
</package>
END
doc = Nokogiri::XML(doc)
# Awesome this works!
puts '//xmlns:metadata'
puts doc.xpath('//xmlns:metadata')
# => <metadata xmlns:dc="URI"><dc:title>title text</dc:title></metadata>
Run Code Online (Sandbox Code Playgroud)
如您所见,上面似乎正常工作.但是,我似乎无法从此节点树获取标题信息,以下所有内容都失败了.
puts doc.xpath('//xmlns:metadata/title')
# => nil
puts doc.xpath('//xmlns:metadata/dc:title')
# => ERROR: `evaluate': Undefined namespace prefix
puts doc.xpath('//xmlns:dc:title')
# => ERROR: 'evaluate': Invalid expression: //xmlns:dc:title
Run Code Online (Sandbox Code Playgroud)
有人可以解释如何使用上面的xml doc在xpath中使用命名空间.
有没有理由说我目前的工作目录不在我的Ruby路径上?
考虑:
~:499$ irb
ruby-1.9.2-p136 :002 > puts $:
/Users/mrberryman/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1
/Users/mrberryman/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/x86_64-darwin10.6.0
/Users/mrberryman/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby
/Users/mrberryman/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/vendor_ruby/1.9.1
/Users/mrberryman/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/vendor_ruby/1.9.1/x86_64-darwin10.6.0
/Users/mrberryman/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/vendor_ruby
/Users/mrberryman/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1
/Users/mrberryman/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/x86_64-darwin10.6.0
=> nil
Run Code Online (Sandbox Code Playgroud)
这真的很困扰我,因为需要不起作用,因为我认为它会(虽然我是一个红宝石的nuby):
require 'some_file_that_I_know_darn_well_is_in_pwd.rb'
Run Code Online (Sandbox Code Playgroud)
如果我追加'.'到最后,则需求按照我的预期运行.
我错过了什么?
更新:
精氨酸!现在我遇到了一个新问题.考虑:
ruby-1.9.2-p136 :010 > `ls`
=> "start.rb\n"
ruby-1.9.2-p136 :011 > require_relative 'start'
LoadError: cannot infer basepath
from (irb):11:in `require_relative'
from (irb):11
from /Users/mrberryman/.rvm/rubies/ruby-1.9.2-p136/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)
现在怎么了?
我现在正在使用炼油厂的cms.我创建了一个引擎,并带有一些助手app/helpers/admin/.现在我想在我的前端视图(即.app/views/myapp/index)中使用这些助手.但我不能......未定义的方法错误.除了将整个事情复制到一起之外我该怎么做app/helpers/?助手看起来像这样
module Admin
module myHelper
def somefunc
end
end
end
Run Code Online (Sandbox Code Playgroud)
那么可以somefunc在Admin模块之外使用吗?
我们都知道"神奇"
# encoding: utf-8
Run Code Online (Sandbox Code Playgroud)
线.但我已经看到了其他几种替代符号,其中一些非常狂野.你知道或使用其中的任何一个吗?是否有一些更普遍的规则可以接受什么?
编辑:好的,显然有3种方式:
# encoding: UTF-8
# coding: UTF-8
# -*- coding: UTF-8 -*-
Run Code Online (Sandbox Code Playgroud)
(更多信息,请访问http://blog.grayproductions.net/articles/ruby_19s_three_default_encodings)
我已经安装rbenv在我的流浪汉机器上但是当我尝试列出所有可用的ruby版本时rbenv versions它会给我这个输出:
system (set by /home/vagrant/.rbenv/version)
有谁知道这是什么?
例如,我安装了以下四个版本:
水豚(2.2.1,2.2.0.rc1,2.1.0,1.1.4)
请建议如何卸载capybara版本1.1.4
我已经开始了Rails 4.
在处理JSON格式数据时,我发现我们可以使用rails/jbuilder并且运行良好.
但是,当我拿着Codeschool的Rails 4 Pattern时,他们提到了gem active_model_serializers.
对于active_model_serializersgem而言,所有JSON序列化逻辑都会进入Model(被认为是最佳实践).
而对于jbuildergem,我们需要编写带扩展名的单独视图文件.json.jbuilder.
我的问题是:
ruby ruby-on-rails jbuilder active-model-serializers ruby-on-rails-4
我有这个简单的html解析器(用于学习目的),我一直在研究:
require 'open-uri'
puts "Enter URL to parse HTML: "
url = gets.chomp
puts "Enter tag to parse from: "
tag = gets.chomp
response = open(url).read
title1 = response.index(tag)
title2 = response.index(tag.insert(1,'/')) -1
result = response[(title1 + tag.length - 1)..title2]
print result
Run Code Online (Sandbox Code Playgroud)
当我输入时http://twitter.com,我收到此错误消息:
ERROR: `open_loop': redirection forbidden: http://twitter.com -> https://twitter.com/ (RuntimeError)
from /usr/local/rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/open-uri.rb:149:in `open_uri'
from /usr/local/rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/open-uri.rb:704:in `open'
from /usr/local/rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/open-uri.rb:34:in `open'
from /home/ubuntu/workspace/htmlparse.rb:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
有任何建议或帮助吗?我是Ruby新手,我知道其他html解析模块,但我这样做是为了学习Ruby基础知识.谢谢.
在我的模板x.pdf.erb网站中,我链接了所有样式表和javascript标记:
<%= wicked_pdf_stylesheet_link_tag "bootstrap.css" -%>
<%= wicked_pdf_stylesheet_link_tag "style.css" -%>
<%= wicked_pdf_stylesheet_link_tag "styleUmowa.css" -%>
<%= wicked_pdf_stylesheet_link_tag "animate.css" -%>
<%= wicked_pdf_javascript_include_tag "application" %>
Run Code Online (Sandbox Code Playgroud)
生成pdf网站时,除了bootstrap网格系统外,一切都很好,我的意思是邪恶的pdf忽略了我的:
<div class="container">
<div class="row">
<div class="col-lg-4"></div>
<div class="col-lg-4"></div>
<div class="col-lg-4"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
因此,它显示为没有自举网格的普通div.你能帮帮我吗?
我正在尝试为开发和测试创建postgres数据库.
我正在使用...
的Gemfile ...
gem 'pg'
Run Code Online (Sandbox Code Playgroud)
database.yml的
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: myapp_development
username: username
password:
test:
<<: *default
database: myapp_test
Run Code Online (Sandbox Code Playgroud)
rake db:create:all 回报
PG::InsufficientPrivilege: ERROR: permission denied to create database
: CREATE DATABASE "myapp_development" ENCODING = 'unicode'
.... (lots of tracing)
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "pool"=>5, "database"=>"myapp_development", "username"=>"username", "password"=>nil}
myapp_test already exists
Run Code Online (Sandbox Code Playgroud)
怎么了?
编辑
我只是尝试将database.yml中的用户名更改为我在Mac上使用的用户名.有效.它还告诉我,不仅maybe_test' already exists, but it also just told …