草庐IT

数据增强方法

全部标签

ruby - 如何为包含 "gets.chomp"的 Ruby 方法编写 RSpec 测试?

这个问题在这里已经有了答案:rspeccommandlinevariableinput(1个回答)关闭9年前。挑战嗨!对于以下Ruby方法,如何在不重写方法的情况下使用RSpec测试模拟用户输入?defcapture_nameputs"Whatisyourname?"gets.chompend我找到了asimilarquestion,但这种方法需要使用一个类来创建。RSpec是否支持对不在类中的方法进行stub?一个不同的作品,但我不得不重写方法我可以重写该方法,使其具有默认值为“gets.chomp”的变量,如下所示:defcapture_name(user_input=gets.c

ruby-on-rails - 使用 bootstrap 按 rails 中的列对表数据进行排序

编辑:如果可能的话,我更愿意使用Bootstrap来实现此功能,因为我的项目中有Bootstrap。似乎我可能只是缺少在我的rails项目中使用bootstrap的javascript的东西。单击列名时,表格应按该列名对数据进行排序。下表:我尝试按照显示的示例使用Bootstrap对数据进行排序atthiswebsite,但它对我不起作用。我错过了什么?我的Gemfile中的相关gem:#Gemfilegem'bootstrap-sass'gem'autoprefixer-rails'CSS:#app/assets/stylesheets/application.css.scss@im

ruby - 通过方法调用时如何将参数传递给proc?

proc=Proc.newdo|name|puts"Thankyou#{name}!"enddefthankyieldendproc.call#outputnothing,justfineproc.call('God')#=>ThankyouGod!thank&proc#outputnothing,too.Fine;thank&proc('God')#Error!thank&proc.call('God')#Error!thankproc.call('God')#Error!#So,whatshouldIdoifIhavetopassthe'God'totheprocandusethe

ruby - 在 Ruby 中填充数组的方法

这是我现在所拥有的,它有点管用:defpadding(a,b,c=nil)untila[b-1]a这是它起作用的时候:a=[1,2,3]padding(a,10,"YES")=>[1,2,3,"YES","YES","YES","YES","YES","YES","YES"]a[1,2,3]padding(a,10,1)=>[1,2,3,1,1,1,1,1,1,1]但是当我没有为“c”输入值时它崩溃了a=[1,2,3]padding(a,10)Killed我应该如何附加它以避免崩溃?此外,您建议如何更改此方法以按如下方式使用它:[1,2,3].padding(10)=>[1,2,3,n

ruby-on-rails - Ruby 中的私有(private)方法

定义私有(private)方法的RailsController示例:classApplicationController然后,它被用于ApplicationController的子类中:classCustomerController怎么可能从其子类中调用私有(private)方法?Ruby中的private是什么意思? 最佳答案 不能使用显式接收器调用私有(private)方法。但是它们可以被该类的任何子类和实例调用。Here很好地解释了Ruby中的public、protected和private方法。

ruby-on-rails - 使用 ActiveRecord find_in_batches 方法删除大数据

好的,所以我知道在处理非常大的数据时,我们可以使用find_in_batches,据我所知,它完成了Model.all.each的工作以一种非常快速的方式,效率更高现在,我有一个非常大的数据要删除,我正在考虑使用相同的find_in_batches来批量删除它们。下面是我所拥有的(来自rake任务database.rake):old_messages=TextMessage.where("created_at但是,当我运行它时,出现以下错误:ArgumentError:wrongnumberofarguments(0for1..3)/Users/Sunday/.rvm/gems/rub

ruby - 使用 Ruby gem 打包只读数据文件

我正在开发一个部署为gem的Ruby应用程序。我想在gem中包含一个只读数据文件,但我不确定应该如何/在哪里打包关于一些背景知识,此应用程序处理MIDI规范,其中包括数百个常量值。例如,Controller“ChannelVolume”始终由值7标识。“Sustain”由64等标识。过去,人们将这些值作为一大组常量包含在他们的代码中。这很好,但对我来说,将它们包含在与语言无关的格式(例如yaml)中似乎更合适使用GEM_PATH定位yaml文件很丑陋,而且在非gem部署中使用库时也不起作用。谢谢你的帮助 最佳答案 我认为RubyGe

ruby-on-rails - Rails 在类方法中使用包含的帮助器

有人知道为什么包含的方法在类方法中不起作用吗?classMyClassincludeActionView::Helpers::NumberHelperdeftestputs"Uploading#{number_to_human_size123}"enddefself.testputs"Uploading#{number_to_human_size123}"endendree-1.8.7-2011.03:004>MyClass.new.testUploading123Bytes=>nilree-1.8.7-2011.03:005>MyClass.testNoMethodError:und

Ruby "count"哈希方法

我有一个散列,我想将其中的值用作新散列中的键,该新散列包含该项目在原始散列中作为值出现的次数的计数。所以我使用:hashA.keys.eachdo|i|putshashA[i]end示例输出:0112011我希望新的哈希如下:{0=>2,1=>4,2=>1} 最佳答案 counts=hashA.values.inject(Hash.new(0))do|collection,value|collection[value]+=1collectionend 关于Ruby"count"哈希方法,

ruby - 将 Ruby 符号理解为方法调用

这个问题在这里已经有了答案:HowtounderstandsymbolsinRuby(11个答案)关闭9年前。classAdeftest"Testfrominstance"endclass此处符号按预期工作,但此处:s="test"s1=:sps1#:s为什么这里打印:s??我不明白背后的原因。谁能为我解释一下?