我无法从Nokogiri解析的字符串中删除空格

我无法从字符串中删除空格。 我的HTML是: Cena pro Vás: 139 Kč 我的代码是: #encoding: utf-8 require ‘rubygems’ require ‘mechanize’ agent = Mechanize.new site = agent.get(“http://www.astratex.cz/podlozky-pod-raminka/doplnky”) price = site.search(“//p[@class=’your-price’]/strong/text()”) val = price.first.text => “139 ” val.strip => “139 ” val.gsub(” “, “”) => “139 ” gsub , strip等不起作用。 为什么,我该如何解决这个问题? val.class => String val.dump => “\”139\\u{a0}\”” ! val.encoding => # __ENCODING__ => # […]

从插件中包含控制器的方法

使用Rails 2.3.11 ,我正在为Redmine创建一个插件,为ApplicationController 添加方法 。 我在插件中创建了以下模块: module ApplicationControllerPatch def self.included(base) # :nodoc: base.class_eval do rescue_from AnException, :with => :rescue_method def rescue_method(exception) … end end end end 现在,如果我将此模块直接包含在application_controller.rb文件中,如下所示: class ApplicationController < ActionController::Base include ApplicationControllerPatch … end 一切正常,但是我想通过从插件本身包含这个模块来避免编辑核心源代码。 到目前为止,如果我这样做: ApplicationController.send(:include, ApplicationControllerPatch) 直接来自这个模块文件(位于插件文件夹中)。 这将为请求正确加载,然后由控制器覆盖(我猜)。 完成此任务的方法是什么?

使用ruby生成为/ etc / shadow格式化的SHA512 crypt-style哈希?

我想生成SHA512散列密码,以便直接包含在/ etc / shadow文件中,以便与chef的用户资源一起使用 。 通常我会去stdlib的Digest库,但它不会以正确的格式生成哈希: ruby-1.9.2-p136 :001 > require ‘digest/sha2’ => true ruby-1.9.2-p136 :002 > Digest::SHA512.hexdigest(‘test’) => “ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff” shadow文件想要的格式是: $6$/ShPQNXV$HJnibH9lw01qtYqyJQiBf81ggJB2BGUvKA7.kv39HGCeE.gD4C/SS9zAf5BrwOv3VJzvl99FpHYli9E8jykRC0 我看过的事情: openssl“dgst”模块返回与.hexdigest相同的格式,其“passwd”模块不包含SHA512支持。 String#crypt,但不支持SHA512。 (编辑:这只是OSX的情况 – 如果指定“$ 6 $ somesalt”作为盐,现代Linux发行版将起作用) ruby-crypt gem,但它不支持SHA512 为了比较,确实返回正确格式的东西是PHP的crypt ,但我宁愿不必向PHP执行简单的操作。

Ruby的假文件系统

我需要一些代码将实际的文件系统伪造成假的。 因此,当我启动它时,它将/home/user/Documents/fake_fs为/ ,因此每个Dir或File调用都会转到该目录。 一个例子: 我想在/some_file上创建一个文件,所以我使用: File.open(‘/some_file’, ‘w’) do |f| f.puts ‘something on this file’ end 它会将它写在/home/user/Documents/fake_fs/some_file而不是/some_file 。 有没有办法做到这一点? 谢谢!

在ruby 1.9.1中编译rails中的问题

我使用的是rails 2.3.3和ruby 1.9.1。 我试图渲染一个包含部分的视图。 在部分i中输出以UTF8编码的模型的字段。 这失败了 ActionView::TemplateError (incompatible character encodings: ASCII-8BIT and UTF-8) on line #248 of app/views/movie/show.html.erb: 245: 246: 247: 248: ‘movie_stats’ %> 249: 250: 251: 另一方面,如果我直接在视图中使用该字段(当它不是部分时),我可以输出具有utf8内容的字段。 我怎样才能解决这个问题? 我已经尝试设置默认编码,但似乎没有用。

在Ruby中使用Google Search REST API

我正在尝试使用Ruby进行谷歌搜索,并打印前3个结果。 谁能指点我一个示例代码? 我找不到了。

如何使用Ruby / Rails从网站获取内容?

我想使用ruby / rails从网站复制一些特定内容。 我需要的内容是在一个marquee html标签内,除以div。 如何使用ruby访问此内容? 更确切地说 – 我想使用某种ruby(最好是鞋子)。 我该怎么做?

字符串连接错误

我遇到了语法错误。 我接受这是一个语法错误,但我有点好奇为什么它是一个语法错误。 这完全符合您的预期: (0..9).each { |n| puts n.to_s + “^2 = ” + (n**2).to_s } 这会引发错误: (0..9).each { |n| puts n.to_s +”^2 = “+ (n**2).to_s } 错误: NoMethodError: undefined method ‘+@’ for “^2 = “:String 奇怪的是,我可以在任何地方移动第二个加号,Ruby似乎没有任何问题,但如果第一个碰巧触及双引号,我会收到语法错误。 为什么会发生这种情况呢?

从模块中获取类名

如何从模块中获取包含模块的类的类名? module ActMethods def some_method(*attr_names) cls = self.class # this doesn’t work end end 我怎么能进入cls变量加载这个模块的类的名称?

如何validation此哈希参数?

如何为此哈希参数编写正确的paramsvalidation: { “files”: { “main.c”: { “contents”: “#include …”, “foo”: “bar” }, “main.h”: { “contents”: “#define BLAH …”, “foo”: “baz” }, … more files here … } } files是我要validation的哈希参数。 files每个键都可以是任何东西(字符串); 值是具有特定格式的哈希值,也需要进行validation(需要contents和foo )。 我正在使用葡萄0.9.0。 这就是我想要的东西: params do optional :files, type: Hash do requires , type: Hash do requires :contents, type: String requires :foo, type: String end […]