Tag: 需要

需要Rails控制台和控制器中的Ruby模块

我需要Ruby模块FileUtils来处理文件的一些操作。 我想测试这个要求在我的控制器中能正常工作。 所以我在我的控制台中尝试了这个但是结果是false的(当我不在Rails控制台但只是一个普通的Ruby控制台时,这很好用): 转到我的项目的根目录 $ rails c打开我的控制台 > require ‘fileutils’返回false 。 通过rails控制台要求模块的正确方法是什么? 为什么这会返回错误? 我假设在我的控制器中我可以做这样的事情,对吗? def create require ‘fileutils’ # my code that uses fileutils. end

在Ruby中安全地需要gem

有没有办法安全地要求rubygem,以便在没有找到gem时不引发exception? 我正在寻找一个接近这个的解决方案: if require ‘hirb’ # do some hirb related stuff else # do other stuff end 我希望这能确保没有不必要的gem使我的部署失败。

我可以有条件地跳过在同一个文件中加载“更多”ruby代码吗?

我可以有条件地跳过在同一个文件中加载“更多”ruby代码, 如果找不到库(通过require加载)? begin require ‘aws-sdk’ rescue LoadError puts “aws-sdk gem not found” return #does not work. nor does next end # code after here should not be executed as `aws-sdk` gem was not found puts “=== should not get executed” namespace :db do desc “import local postgres database to heroku. user and database name is […]

未定义的方法`end_with?’ 为“没有这样的文件加载 – Win32API”:字符串(NoMethodError)

我只是设置一个新的服务器,并希望安装Twitter gem,但在Ubuntu 8.04 / Ruby 1.8.6上遇到问题 它说“multi_json需要RubyGems> = 1.3.6”,但是运行“gem update –system”显然会尝试并更新RubyGems 1.5,这在Ruby 1.8.6上是无法完成的,并且失败并出现以下错误: undefined method `end_with?’ for “no such file to load — Win32API”:String (NoMethodError) from ./lib/rubygems/config_file.rb:55 from ./lib/rubygems/custom_require.rb:29:in ‘gem_original_require’ from ./lib/rubygems/custom_require.rb:29:in ‘require’ … 有任何想法吗? 谢谢 史蒂夫

Ruby中简单的’require’问题

我正在跟随’为什么是Ruby的尖锐指南’来学习Ruby,当他第一次在他的教程中介绍’require’方法(?)时遇到了一些问题。 基本上我创建了一个名为’wordlist.rb’的文件,其中包含: code_words = { ‘starmonkeys’ => ‘Phil and Pete, those prickly chancellors of the New Reich’, ‘catapult’ => ‘chucky go-go’, ‘firebomb’ => ‘Heat-Assisted Living’, ‘Nigeria’ => “Ny and Jerry’s Dry Cleaning (with Donuts)”, ‘Put the kabosh on’ => ‘Put the cable box on’ } 然后我有另一个名为’files.rb’的ruby scipt: require ‘wordlist’ #Get evil idea and swap in […]

使用Ocra,LoadError从ruby文件生成可执行文件?

我正在尝试从Windows上的几个ruby文件生成可执行文件,所以我安装了Ocra。 我以为我理解了Ocra如何工作的过程,但似乎无法使可执行文件正常工作。 我遇到的问题是“需要”其他ruby文件。 ruby程序本身编译正确并按我想要的方式运行,Ocra似乎创建了一个可运行的可执行文件,但是,当我尝试运行可执行文件时,我收到以下错误: * / custom_require.rb:36:在’require’中:无法加载此类文件 – MainMenuDialog.rb(LoadError)* 我的主程序名为’JobManager.rb’,它正在创建一个新的MainMenuDialog对象,因此我在文件的顶部包含MainMenuDialog.rb: $: << File.expand_path(File.dirname(__FILE__) + "/../lib") # Other requires here require("MainMenuDialog.rb") 同样,程序自身编译和运行完美(包括require语句),当我运行命令ocra JobManager.rb时,它成功运行程序,检查依赖项,并创建可执行文件。 由于上面描述的“LoadError”,我无法运行可执行文件。 对我做错了什么的想法? 提前致谢!!!

是否需要gem加载一切,包括我不使用的东西?

假设x是一个gem,它包含Hello和Goodbye类。 如果我编写一个require ‘x’的程序,但只使用Hello类。 Goodbye类也加载了吗?

Ruby救援声明是否适用于require?

Ruby rescue语句修饰符是否适用于require ? irb(main):001:0> require ‘a’ rescue nil LoadError: no such file to load — a from (irb):1:in `require’ from (irb):1 from :0

Ruby如何知道在哪里可以找到所需的文件?

这是一个新手问题: require ‘tasks/rails’ 我在每个rails项目的根路径中看到了Rakefile中的这一行。 我想这行是用来要求vendor / rails / railties / lib / tasks / rails.rb来加载所有rake任务: $VERBOSE = nil # Load Rails rakefile extensions Dir[“#{File.dirname(__FILE__)}/*.rake”].each { |ext| load ext } # Load any custom rakefile extensions Dir[“#{RAILS_ROOT}/lib/tasks/**/*.rake”].sort.each { |ext| load ext } Dir[“#{RAILS_ROOT}/vendor/plugins/*/**/tasks/**/*.rake”].sort.each { |ext| load ext } 我的问题是为什么只为require方法指定’tasks / rails’,而不是文件的完整路径? 提前致谢。

两颗gem共享相同的要求?

我打电话的时候: require ‘retryable’ 这两个gem发生冲突: https://github.com/robertsosinski/retryable https://github.com/carlo/retryable 因为他们都有一个’可重试的’文件,他们要求用户要求。 我对使用第一个gem感兴趣,但这并不总是发生。 此代码作为我自己的gem的一部分执行,并且必须在所有用户之间可靠。 有没有办法特别要求gem(因为gem名称当然不同)? 如何解决此命名冲突? 编辑:澄清一下,这是官方的回购和gem名称实际上是不同的(“retryable-rb”和“carlo-retryable”),但他们都要求他们的用户要求lib / retryable.rb文件require ‘retryable’