草庐IT

Ruby 1.9 正则表达式作为哈希键

我正在使用ruby1.9.2p136(2010-12-25)[i386-mingw32].它没有按预期工作(编辑:事实证明它不应该像我预期的那样工作):irb(main):004:0>myhash={/(\d+)/=>"hello"}=>{/(\d+)/=>"Hello"}irb(main):005:0>myhash[2222]=>nilirb(main):006:0>myhash["2222"]=>nil在Rubular在ruby​​1.8.7上regex有效。我错过了什么? 最佳答案 你在寻找这种行为吗?myhash=Hash.

sql - Rails SQL COUNT N+1 效率低下

我有一个博客。在我的索引页面上,我拉入了所有博客文章。对于每篇博客文章,我都会计算该文章的评论数。这会导致N+1问题。我的查询如下所示:SELECT"blog_posts".*FROM"blog_posts"WHERE("blog_posts"."published"='t')ORDERBYpublished_atDESCSELECT"users".*FROM"users"WHERE("users"."id"IN(1,2,3))SELECTCOUNT(*)FROM"blog_comments"WHERE("blog_comments".blog_post_id=10)SELECTCOU

Ruby:为什么 1.025.round(2) 四舍五入为 1.02?

据我了解.round()-ruby中的功能将小数向上舍入,最后一个有效数字是5?例如1.5.round(0)#=>2(OK)但为什么1.025.round(2)#=>1.02而不是我期望的1.03?irb(main):037:0>1.025.round(2)=>1.02我该怎么做才能解决这个问题? 最佳答案 这与最后一位数字为5无关,与将十进制值转换为double浮点值有关。http://en.wikipedia.org/wiki/Double_precision_floating-point_format基本上,十进制数必须以有限

ruby-on-rails - OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=unknown 状态:未知协议(protocol)

我关注了很多关于这个问题的帖子,但没有一个对我有帮助。我正在尝试使用最简单的irb命令进行连接:require'open-uri'open('https://aristo4stu3.bgu.ac.il')奇怪的是,对于我尝试过的任何其他httpsuri,它都工作正常(即https://google.com)。出于调试目的,我什至尝试使用以下方法禁用SSL验证:OpenSSL::SSL::VERIFY_PEER=OpenSSL::SSL::VERIFY_NONE这似乎也没有帮助。我的设置是(在AWS上):$rvm-vrvm1.21.3(stable)byWayneE.Seguin,Mic

ruby - Rvm:无法卸载 bundle 程序 1.1.0

我有一个rails3.0.2项目我想安装,尽管我的大多数新项目都是3.2+我去运行bundleinstall并收到以下消息:Bundlercouldnotfindcompatibleversionsforgem"bundler":InGemfile:rails(=3.0.2)rubydependsonbundler(~>1.0.0)rubyCurrentBundlerversion:bundler(1.1.0)ThisGemfilerequiresadifferentversionofBundler.PerhapsyouneedtoupdateBundlerbyrunning`gemi

ruby-on-rails - 在 Ruby 中,12.months != 1.year

Ruby的日期/时间助手很有用,但我发现了一个差异。似乎12.months不等于1.year。检查1.month,您会发现它等于30.days,当然还有12*30.days=360.days,比实际年份少5.25天。当我根据客户指定的授予月数设置对我们网站某些组件的访问权限时,我遇到了这个问题。在运行测试时,我发现36个月的期限提前几周到期。解决方案是这样的:defmonths_to_seconds(number_of_months)((number_of_months.to_f/12)*1.year).to_i.secondsend这将返回由number_of_months表示的一年

ruby - 如何在 Ruby 中将 1 和 0 转换为 true 和 false。想要一个 bool 值或逻辑输出

我需要索引我根据“真”和“假”定义的散列colorHash=Hash.new{|hash,key|hash[key]={}}colorHash["answers"][true]="#00CC00"colorHash["answers"][false]="#FFFFFF"出于测试目的,我使用rand(2)建立索引但失败了。如果我使用true进行索引,它就会起作用。我在找类似的东西rand(2).logical却一无所获。 最佳答案 有一种简单(虽然不是很令人兴奋)的方法可以做到这一点:rand(2)==1

ruby-on-rails - 如何使用 Rails 5.1.0 和 jQuery

我开始使用Railsv5.1.0,我知道它默认没有jQuery,但是我想安装jQuery以与ZurbFoundation6一起工作。将其设置为基础当前未加载模式的最佳方法是什么? 最佳答案 总结:安装yarnyarn添加jquery将jquery添加到application.jslist文件~~~我今天也遇到了这个问题。在thisarticleaboutusingActionCablewith5.1我了解到在您的应用程序中获取JQuery的新方法是使用Yarn这是一个javascript依赖项管理器(想想Gemfile和Bundle

ruby - 无法在 Ruby 1.9.3 IRB 中输入变音符号

我在Ruby1.9.3的IRB和MacOS10.7.3中遇到了非常奇怪的行为当我尝试输入变音符号时,它在提示符中被转义,看起来像这样(我在键盘上输入了"ü")irb(main):001:0>"\U+FFC3\U+FFBC"最奇怪的是:irb(main):001:0>"\U+FFC3\U+FFBC".length=>0当然,字符也不显示:irb(main):001:0>"\U+FFC3\U+FFBC"=>""有谁知道这里发生了什么或如何解决这个问题? 最佳答案 VictorMoroz没有给出明确的答案,但他的链接让我找到了解决方案(谢

ruby - 如何在 Ruby 1.9 中只获取有序哈希的一个子集?

让我们举个例子:d={"a"=>1,"b"=>2,"c"=>3,"d"=>4}由于哈希现在是有序的,我可能想要从a到b或从c到d。问题是我无法执行d[0..1]或d[2..3]。不过我可以这样做:irb>d.to_a[0..1]=>[["a",1],["b",2]]...但这感觉很乱,我不想为这样的操作转换我的哈希值。是否有更清洁的解决方案来处理这个问题?#HolyGrailirb>d[0..1]=>{"a"=>1,"b"=>2}我可以看到如何为自己编写这样的方法,但可能已经有一些原生的东西我可以使用...? 最佳答案 你可以这样做