Nokogiri是针对LibXML 2.7.7版本构建的,但动态加载了2.7.3

在Rails 3中,我注意到每次调用框架时,无论是来自rake , rails server还是其他任何东西,我都会收到以下警告: Nokogiri was built against LibXML version 2.7.7, but has dynamically loaded 2.7.3 在Google上搜索会产生一些博客文章,所有post都建议使用显式库和包含路径重建Nokogiri。 例如: http://mrflip.github.com/2009-08/nokogiri-hates-libxml2-on-osx.html 但是,这并没有为我解决问题。 打字nokogiri -v给了我这个: — warnings: [] ruby: engine: mri version: 1.8.7 platform: i686-darwin10.4.0 libxml: loaded: 2.7.7 binding: extension compiled: 2.7.7 nokogiri: 1.4.4 这似乎表明我的构建运行正常,Nokogiri正在加载正确的库版本。 为什么Rails会抱怨? 我实际上找到了答案,我想我会在这里分享。 请参阅下面的答案。

“堆栈级别太深”运行rake db:create:all

当我运行rake db:create:all ,我收到以下消息: /Users/junior/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2/lib/rake/version.rb:4: warning: already initialized constant MAJOR /Users/junior/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2/lib/rake/version.rb:5: warning: already initialized constant MINOR /Users/junior/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2/lib/rake/version.rb:6: warning: already initialized constant BUILD /Users/junior/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2/lib/rake/version.rb:3: warning: already initialized constant NUMBERS /Users/junior/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2/lib/rake/version.rb:9: warning: already initialized constant VERSION /Users/junior/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2/lib/rake.rb:26: warning: already initialized constant RAKEVERSION /Users/junior/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2/lib/rake/early_time.rb:17: warning: already initialized constant EARLY /Users/junior/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2/lib/rake/alt_system.rb:32: warning: already initialized constant WINDOWS /Users/junior/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2/lib/rake/application.rb:28: warning: already initialized […]

学习插入在Ruby中排序

我刚刚通过在线发布的材料开始了麻省理工学院的算法入门课程。 除了课程,我还决定通过编写算法来学习/增强我的Ruby技能。 我在给出的第一个算法,即插入排序,我输入了以下代码,但是当我运行它时,我收到此错误: insertionsort.rb:5:在`>’中:Fixnum与nil的比较失败(ArgumentError) def insertionsort(num) for j in 2..num.length key = num[j] i = j – 1 while i > 0 and num[i] > key num[i+1] = num[i] i = i – 1 end num[i+1] = key end puts num end numbers = [23,34,46,87,12,1,66] insertionsort(numbers) 我确信这是一个相当基本的问题,但我现在无法理解它是什么。 任何帮助或提示将非常感谢。

Ruby中的“和”,“或”运算符背后有智慧吗?

我想知道为什么ruby给予and / or优先于&& , || ,并分配运营商? 有什么缘故吗?

通过Google Gmail API创建草稿

我正在尝试为登录用户创建草稿消息,但在运行以下内容时不断收到错误Missing draft message require ‘google/api_client’ client = Google::APIClient.new client.authorization.client_id = ENV[‘GOOGLE_CLIENT_ID’] client.authorization.client_secret = ENV[‘GOOGLE_CLIENT_SECRET’] client.authorization.grant_type = ‘refresh_token’ client.authorization.refresh_token = User.last.refresh_token token = client.authorization.fetch_access_token! gmail = client.discovered_api(‘gmail’, ‘v1’) params = { ‘userId’ => ‘me’, ‘draft’ => { ‘message’ => {‘raw’ => ‘test email’ } } } # { ‘userId’ => ‘me’, ‘message’ => {‘raw’ => ‘test […]

ElasticSearch&Tire:使用Mapping和to_indexed_json

在阅读Tire文档时,我的印象是你应该使用mapping或to_indexed_json方法,因为(我的理解是……) mapping用于提供to_indexed_json 。 问题是,我发现了一些使用它们的教程。 为什么? 基本上,我的应用程序现在使用to_indexed_json但我无法弄清楚如何设置某些属性的提升值(因此我开始查看映射的原因),我想知道是否使用两者会产生一些冲突。

在不破坏锚点和别名的情况下读取和写入YAML文件

之前已经问过这个问题:在不破坏锚点和别名的情况下读取和写入YAML文件? 我想知道如何用许多锚点和别名来解决这个问题? 谢谢

编译器无法生成可执行文件。 (RuntimeError)

我最近升级到OS Mountain Lion。 我正在处理的项目需要gem sys-proctable作为依赖项,但是当我运行bundle install我得到: Fetching gem metadata from https://rubygems.org/……… . . . Installing sys-proctable (0.9.2) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/mgriffel/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb checking for rb_pid_t in ruby.h… *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check […]

Ruby 1.8.7(或Rails 2.x)中的String.force_encoding()

有没有在Ruby 1.8.7(或Rails 2.x)中使用String.force_encoding()的解决方案,以便它像在Ruby 1.9中一样工作? 我读了一些关于require active_support ,但这不起作用 $> gem list –local | grep’rails \ | activesupport’ activesupport (3.0.3, 2.3.8, 2.3.5) rails (2.3.8, 2.3.5) $> ruby -v ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin10.4.0] $> rails -v Rails 2.3.8 IRB: > require “rubygems” => true > require “active_support” => true > “asdf”.force_encoding(“UTF-8”) NoMethodError: undefined method `force_encoding’ for […]

在ruby中访问嵌套哈希的元素

我正在使用ruby编写的一个小工具,它大量使用嵌套的哈希。 目前,我正在检查对嵌套哈希元素的访问,如下所示: structure = { :a => { :b => ‘foo’ }} # I want structure[:a][:b] value = nil if structure.has_key?(:a) && structure[:a].has_key?(:b) then value = structure[:a][:b] end 有一个更好的方法吗? 我想能够说: value = structure[:a][:b] 并且如果:a不是structure的关键等,则nil