草庐IT

ruby - STDERR.puts 与 Ruby 中的 puts 有何不同?

我正在从ProgrammingRuby1.9学习这门语言,他们将STDERR.puts扔进了本书开头的代码块中,但没有解释他们为什么使用它或它与puts有何不同。我用谷歌搜索和维基搜索了这个术语,但我从我的研究中所能收集到的只是它与诊断有关。ProgrammingRuby提供的代码中似乎没有指向错误异常处理的链接。这是代码。require_relative'csv_reader'reader=CsvReader.newARGV.eachdo|csv_file_name|STDERR.puts"Processing#{csv_file_name}"reader.read_in_csv_d

ruby - `respond_to?` 与 `respond_to_missing?`

与定义respond_to?相比,定义respond_to_missing?有什么意义?如果为某些类重新定义respond_to?会出什么问题? 最佳答案 没有respond_to_missing?已定义,试图通过method获取方法会失败:classFoodefmethod_missingname,*argspargsenddefrespond_to?name,include_private=falsetrueendendf=Foo.newf.bar#=>[]f.respond_to?:bar#=>truef.method:bar

ruby - "extend self"与 "module_function"相同吗?

extendself和module_function是实现它的两种ruby​​方法,因此您可以在模块上调用方法,如果包含该模块也可以调用它。这些方式的最终结果有什么不同吗? 最佳答案 module_function将给定的实例方法设为私有(private),然后复制并将它们作为公共(public)方法放入模块的元类中。extendself将所有实例方法添加到模块的单例中,保持它们的可见性不变。moduleMextendselfdefa;endprivatedefb;endendmoduleNdefc;endprivatedefd;e

ruby - Ruby 中的 class() 与 type()

Ruby中的类方法和类型方法有什么区别?我注意到type可以找到某些类的类型,但不能找到其他类的类型。 最佳答案 主要区别在于Object#type已弃用。来自对象#type的RDoc:DeprecatedsynonymforObject#class.这就是你应该使用Object#class的原因:Returnstheclassofobj,nowpreferredoverObject#type,asanobject‘stypeinRubyisonlylooselytiedtothatobject‘sclass.Thismethodm

ruby - Bundler 无法与 rbenv 一起工作,找不到 [gem]

我刚刚从rvm切换到rbenv,我正在尝试使用bundler进行gem管理。在运行bundleinstall并尝试运行一个简单的sinatra应用程序(rubyapp.rb)之后,我得到了这个:Couldnotfindhaml-3.1.4inanyofthesourcesRun`bundleinstall`toinstallmissinggems.再次运行bundleinstall没有效果。还按照另一个问题回复的建议尝试了bundleupdate。这是我的Gemfile:source"http://rubygems.org"gem"sinatra"gem"haml"这就是bundles

ruby-on-rails - 在 factory_girl 中填充与 child 的关联

我有一个模型Foo有_many'Bar'。对于这些对象中的每一个,我都有一个factory_girl工厂。Bar的工厂与Foo有关联;它会在创建Bar时实例化一个Foo。我想要一个创建包含Bar的Foo的工厂。理想情况下,此Bar将通过:bar工厂创建,并遵守用于创建Foo的构建策略(创建/构建)。我知道我可以直接调用:bar工厂,然后从新的Bar获取Foo引用。我想避免这种情况;在我的测试用例中,重要的对象是Foo;给Bar厂打电话好像有点迂回。此外,我可以看到需要具有多个Bars的Foo。这在factory_girl中可能吗?您如何定义父级中的这种关系?

ruby-on-rails - Rspec 与 TestUnit

我正在开始为我的Rails3.0.8应用程序创建测试套件的计划阶段。我正在尝试决定使用哪个测试框架/gem。通常我更愿意尽可能地遵守Rails惯例。但是,这意味着使用TestUnit。有许多竞争性的测试框架可供选择,它们是作为TestUnit的替代品而创建的。这些年来TestUnit是否变得更好了,或者它不是一个很好的竞争者?我还听说过很多关于rspec的好事。rspec和TestUnit在功能方面是否接近,或者rspec是否将TestUnit打得落花流水?无论我选择什么框架,我都希望它有良好的支持基础(大量用户和文档)、易用性/简单性和持久的future。

ruby - 与 String 相比,在 Ruby 中使用 StringIO 有什么优势?

什么时候使用Ruby的StringIO而不是只使用String是合适的?我想我理解它们之间的根本区别,正如“Whatisruby'sStringIOclassreally?”所强调的那样,StringIO使人们能够以面向流的方式从String读取和写入。但这实际上意味着什么?当简单地使用String不会真正削减它时,使用StringIO的实际用途的一个很好的例子是什么? 最佳答案 基本上,它使字符串看起来像一个IO对象,因此得名StringIO。StringIO类具有read和write方法,因此它可以传递给设计用于从文件或套接字读

ruby - 将一个字符串与多个模式匹配

如何使用ruby​​中的正则表达式将字符串与多个模式进行匹配。我正在尝试查看一个字符串是否包含在前缀数组中,这是行不通的,但我认为它至少证明了我正在尝试做的事情。#example:#prefixes.include?("Mrs.KirstenHess")prefixes.include?(name)#shouldreturntrue/falseprefixes=[/Ms\.?/i,/Miss/i,/Mrs\.?/i,/Mr\.?/i,/Master/i,/Rev\.?/i,/Reverend/i,/Fr\.?/i,/Father/i,/Dr\.?/i,/Doctor/i,/Atty\.

ruby-on-rails - 在与标准 "production"或 "development"不同的数据库上使用 Rails 迁移

我有一个正在运行的Rails项目,它在config/database.yml中定义了标准生产:、:开发和:测试数据库连接另外我有一个quiz_development:和quiz_production:定义指向不同的主机/数据库/用户/密码我现在的目标是定义一个使用“quiz_#{RAILS_ENV}`”作为其数据库配置的迁移。我尝试过(但失败了):在迁移文件中设置ActiveRecord::Base.connection更改rails中的db:migrate任务以在那里设置ActiveRecord::Base.connection问题:如何让rakedb:migrate使用其他数据库定