相关疑难解决方法(0)

为什么Ruby 1.9.2删除"." 来自LOAD_PATH,有什么替代方案?

Ruby 1.9.2的最新变更集不再使当前目录.成为您的目录LOAD_PATH.我有一些非常重要的Rakefiles假设它.是其中的一部分LOAD_PATH,所以这打破了它们(他们报告"没有这样的文件加载"所有基于项目路径的require语句).这样做有什么特别的理由吗?

至于一个修复,添加$: << "."到处都有效,但看起来非常h​​acky,我不想这样做.使Rakefiles 1.9.2+兼容的首选方法是什么?

ruby rake require load-path

154
推荐指数
5
解决办法
4万
查看次数

ruby LoadError:无法加载此类文件

当我需要一个文件时,例如(称为st.rb):

require 'rubygems'
require 'mongrel'

class TestHandler < Mongrel::HttpHandler

  def process(request, response)
    response.start(200) do |head, out|
      head["Content-Type"] = "text/html"
      out.write "Hello, World!\n"
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

在irb我得到:

>> require 'st.rb'
LoadError: cannot load such file -- st.rb
    from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from (irb):3
    from /usr/local/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我可能有一个线索,但这只是猜测.我的ruby版本/安装位置是:

/usr/local/bin/rubyruby 1.9.3p0

然而,红宝石宝石在/usr/local/lib/ruby/1.9.1,它在谈论版本1.9.1.这可能是原因吗?

谢谢!

更新很 奇怪,当我在IRB中键入'put RUBY_VERSION'时,我得到了这个:

puts RUBY_VERSION
1.9.3
NoMethodError: undefined method `write' for nil:NilClass
    from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `printf'
    from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `output_value'
    from /usr/local/lib/ruby/1.9.1/irb.rb:160:in `block (2 …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems

22
推荐指数
3
解决办法
10万
查看次数

Rspec Ruby基本示例错误

我正在尝试运行使用rspec的基本启动示例:http://rspec.info/.

当我在命令提示符下键入时

ruby bowling_spec.rb

我收到以下错误

测试

# bowling_spec.rb
require 'bowling'

describe Bowling, "#score" do
  it "returns 0 for all gutter game" do
    bowling = Bowling.new
    20.times { bowling.hit(0) }
    bowling.score.should == 0
  end
end
Run Code Online (Sandbox Code Playgroud)

# bowling.rb
class Bowling
  def hit(pins)
  end

  def score
    0
  end
end
Run Code Online (Sandbox Code Playgroud)

错误信息

internal:lib/ruby​​gems/custom_require:29:in require': no such file to load -- bowling (LoadError) from <internal:lib/rubygems/custom_require>:29:inrequire'from bowling_spec.rb:2:in`

ruby rspec

8
推荐指数
1
解决办法
2672
查看次数

要求命令在Snow Leopard上的bash irb中不起作用

我正在研究Zed Shaw的"学习Ruby艰苦之路"练习25

http://ruby.learncodethehardway.org/ex25.html

当我导航到保存ruby文件ex25.rb的目录并启动IRB时,我收到以下错误:

Larson-2:~ larson$ cd Ruby
Larson-2:Ruby larson$ ls
ex25.rb
Larson-2:Ruby larson$ irb
ruby-1.9.2-p290 :001 > require 'ex25'
LoadError: no such file to load -- ex25
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from (irb):1
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
ruby-1.9.2-p290 :002 > 
Run Code Online (Sandbox Code Playgroud)

似乎require命令在这里不起作用.有什么我想念的吗?

我也尝试按照建议要求'./25'并得到以下错误:

Larson-2:Ruby larson$ irb
ruby-1.9.2-p290 :001 > require './ex25'
SyntaxError: /Users/larson/Ruby/ex25.rb:1: invalid multibyte char (US-ASCII)
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from (irb):1
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)

ruby irb learn-ruby-the-hard-way

8
推荐指数
1
解决办法
9036
查看次数

为什么IRB无法将文件定位为"require"?

我在目录中有一个文件test/.该文件是"test.rb".

当我启动IRB并输入:

require 'test'
require_relative 'test'
Run Code Online (Sandbox Code Playgroud)

它返回:

LoadError: cannot load such file -- test
Run Code Online (Sandbox Code Playgroud)

和:

LoadError: cannot infer basepath
Run Code Online (Sandbox Code Playgroud)

我的Ruby搞砸了吗?

ruby

4
推荐指数
1
解决办法
3451
查看次数