Tag: 需要

Ruby要求’文件’不起作用,但需要’./file’。 为什么?

我有一个充满ruby文件的文件夹,当我尝试使用require ‘./file’在同一目录中需要一个文件时,我得到一个LoadError但是当我使用require ‘./file’一切正常。 有人可以向我解释为什么会发生这种情况,如果有任何方法我可以要求文件而不在文件中添加./ ? (目录图片):

RAILS_ROOT需要吗?

我正在尝试访问驻留在/ lib目录中的文件中的RAILS_ROOT常量,但我无法(未初始化的常量错误)。 有什么我需要能够做到这一点吗?

需要文件而不执行代码?

这里我有两个文件: file.rb def method puts “This won’t be outputted.” end puts “This will be outputted.” main.rb的 require “./file” 当运行main.rb时,它将加载file.rb中的所有代码,这样我就会得到“这将被输出”。 屏幕上。 是否可以加载文件而无需运行代码? 因为我想加载所有方法(在模块和类中),而不必在这些范围之外执行代码。

在RSpec中需要lib,Ruby 1.9.2带来“没有这样的文件加载”

我正在尝试将我的一个Rails项目升级到Ruby 1.9.2 。 一切都很顺利,但一次RSpec测试破裂了。 在这个测试中我require一个Ruby lib : # file spec/models/my_lib_spec.rb require ‘spec_helper’ require ‘lib/services/my_lib’ describe “MyLib” do it “should do something” do … lib看起来像这样: # file lib/services/my_lib.rb class MyLib def self.do_something … 在Ruby 1.8.7(REE)中,测试运行良好: $ ruby -v ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin11.1.0], MBARI 0x6770, Ruby Enterprise Edition 2011.03 $ rspec ./spec/models/my_lib_spec.rb .. Finished in […]

如何在IRB中要求ActiveRecord

我想在我的IRB会话中加载ActiveRecord gem,但以下内容不起作用: require ‘activerecord’ 2.4.1 :004 > require ‘activerecord’ LoadError: cannot load such file — activerecord from /Users/robskrob/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require’ from /Users/robskrob/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require’ from (irb):4 from /Users/robskrob/.rvm/rubies/ruby-2.4.1/bin/irb:11:in `’ 这也不是: 2.4.1 :018 > require ‘activerecord-5.1.2′ LoadError: cannot load such file — activerecord-5.1.2 from /Users/robskrob/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:120:in `require’ from /Users/robskrob/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:120:in `require’ from (irb):18 from /Users/robskrob/.rvm/rubies/ruby-2.4.1/bin/irb:11:in `’ 这是我在irb中的gem路径: 2.4.1 :012 > […]

ruby和nor irb都不能在当前目录中加载.rb文件

我在Ruby中导入文件时遇到了麻烦。 我在Windows XP中制作一个Ruby应用程序。 该应用程序的所有类文件都在”C:/Documents/Prgm/Surveyor_Ruby/lib” 。 但是当我require另一个文件中的文件时,ruby和irb都不能找到所需的文件。 当前目录的内容: C:\Documents\Prgm\Surveyor_Ruby\lib>dir Volume in drive C has no label. Volume Serial Number is AAAA-BBBB Directory of C:\Documents\Prgm\Surveyor_Ruby\lib 10/09/2010 06:32 PM . 10/09/2010 06:32 PM .. 10/08/2010 03:22 PM 5,462 main (commented).rb 10/08/2010 03:41 PM 92 question.rb 10/08/2010 09:06 PM 2,809 survey.rb 10/09/2010 06:25 PM 661 surveyor.rb 10/08/2010 01:39 PM […]

Ruby奇怪的错误

每当我需要ruby或irb文件时,我都会收到此错误: LoadError: no such file to load — (insert any filename).rb from :29:in `require’ from :29:in `require’ from (irb):1 from /usr/bin/irb1.9.1:12:in `’ 它发生即使文件存在我使用ruby1.9.1据我所知,我还没有安装rubygems。 我在Ubuntu 10.10 Maverick Meerkat上运行。 请大家帮忙,这个问题很烦人! 在此先感谢,ell。 编辑:我忘了说,无论文件在哪里,即使它在同一目录中并且肯定存在,我总是得到这个错误。

需要没有.rb扩展名的ruby文件?

我有一个没有.rb扩展名的ruby文件,而是在文件开头用shebang标识为ruby代码: #!/usr/bin/env ruby 。 我想在另一个ruby文件中require此文件中的代码,但它似乎有问题,因为require自动将.rb扩展名附加到它查找的文件中。 是否有任何方法可以抑制此行为并使require仅在给出名称时查找该文件?

Ruby:如何从当前工作目录“需要”一个文件?

如何从当前文件夹中获取文件? 我有一个名为sql_parser.rb的文件,其中包含一个类。 我想将它包含在同一个文件夹中的另一个文件中,所以我使用了: require ‘sql_parser’ 当我从该文件夹运行时失败: LoadError: no such file to load — sql_parser 我尝试在存在此文件的文件夹中使用IRB并从那里需要它,但是遇到了同样的问题。

Ruby中的循环依赖关系

假设我们有两个类,Foo和Foo Sub,每个类分别位于不同的文件foo.rb和foo_sub.rb中。 foo.rb: require “foo_sub” class Foo def foo FooSub.SOME_CONSTANT end end foo_sub.rb: require “foo” class FooSub < Foo SOME_CONSTANT = 1 end 由于循环依赖性,这不起作用 – 我们不能定义任何一个没有另一个的类。 我见过各种各样的解决方案。 其中两个我想避免 – 即将它们放在同一个文件中并删除循环依赖。 所以,我发现的唯一其他解决方案是前向声明: foo.rb: class Foo end require “foo_sub” class Foo def foo FooSub.SOME_CONSTANT end end foo_sub.rb require “foo” class FooSub < Foo SOME_CONSTANT = 1 end […]