使用Ruby在日期范围之间选择数组

我有一个数组数组,我想选择日期落在一定范围内的数组。 ar = [[72162, “2014-01-21”], [53172, “2014-01-22”], [49374, “2014-01-23”], [41778, “2014-01-24”], [34182, “2014-01-25”], [58869, “2014-01-26”], [72162, “2014-01-27”], [43677, “2014-01-28”], [37980, “2014-01-29”], [87354, “2014-01-30”], [43677, “2014-01-31”]] 例如,我想在2014-01-24和2014-01-29之间获得所有arrays。

使用Ruby 1.9.3时“证书validation失败”OpenSSL错误

我在Mac OS 10.6.8上使用Ruby 1.9.3p0(使用rvm安装)。 当我尝试使用GitHub上托管的应用程序模板创建一个新的Rails应用程序时 ,使用它(例如): $ rails new myapp -m https://github.com/RailsApps/rails3-application-templates/raw/master/rails3-mongoid-devise-template.rb -T -O 我收到此错误消息: /Users/me/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:799:in“connect”:SSL_connect return = 1 errno = 0 state = SSLv3读取服务器证书B:证书validation失败 (OpenSSL的:: SSL :: SSLError) 我理解Ruby语言解释器使用OpenSSL连接到GitHub来请求应用程序模板文件。 GitHub要求使用SSL进行所有连接。 连接失败,因为OpenSSL无法validation服务器证书。 我可以通过下载证书文件来解决问题: $ cd / opt / local / etc / openssl $ sudo curl -O http://curl.haxx.se/ca/cacert.pem $ sudo mv cacert.pem cert.pem 使用Ruby 1.9.2我没有问题。 […]

Sinatra即时配置环境

我已成功编写了一个小的Sinatra应用程序,并已成功将其部署在heroku上。 但是我想在我的本地计算机上以开发模式运行该应用程序,并且我希望在将它推送到远程存储库后在heroku上具有生产模式。 目前我可以实现其中一个选项。 当我将config.ru更改为以下值时: require ‘rubygems’ require ‘sinatra’ require ‘sinatra/reloader’ require “./calc.rb” enable :logging set :environment, :development set :port, 4567 我可以通过ruby config.ru在本地(在端口4567上)运行它。 当我将config.ru更改为: require ‘rubygems’ require ‘sinatra’ require ‘sinatra/reloader’ require “./calc.rb” enable :logging set :environment, :production set :port, 4567 run Sinatra::Application 我能够让它在Heroku上运行(在端口80上)。 但我不能在开发和生产中使用相同的配置。 我希望有类似的东西: ruby config.ru dev for development和ruby config.ru for production。 附加信息: 当我尝试在我的本地机器上运行生产config.ru时,我得到: $ […]

是否可以在Ruby中自动初始化多维哈希数组,就像在PHP中一样?

我习惯于在PHP中使用多维数组,在那里我可以分配和初始化哈希 unset($a); // just to show that there is no variable $a $a[‘settings’][‘system’][‘memory’] = ‘1 Gb’; $a[‘settings’][‘system’][‘disk space’] = ‘100 Gb’; 有没有办法在Ruby中做类似的事情? 或者我需要先初始化所有维度,然后分配值。 是否可以定义一个高级Hash,它可以满足我的需求? 你会怎么做? 更新 除了道格拉斯提出的解决方案(见下文)之外,我还找到了一个主题 ,其中BrianSchröäer提出了Hash类的扩展: class AutoHash self, :update_key => k) end end def []=(k, v) @update[@update_index] = self if @update and @update_index super end end 当仅在请求项目值时,例如a[‘key’] ,当允许不期望地创建丢失的散列项时,它允许解决该问题。 一些额外的参考 ruby hash autovivification(facets) […]

Rails应用程序在子目录中

尝试在子目录中设置Rails应用程序。 我的服务器是切诺基。 我有一个基本url:www.nonsense.com,这是一个wordpress博客,我希望在www.nonsense.com/rails_app中设置一个rails应用程序。 快速浏览谷歌让我使用:ActionController :: AbstractRequest.relative_url_root =“/ rails_app” 但是,它似乎已在最新的Rails中删除。 关于Rails 2.3.8中的等价物的任何想法?

为什么Enumerable#each_with_object已被弃用?

根据ApiDock ,不推荐使用Ruby方法Enumerable#each_with_object 。 除非它是错误的(说“在Rails的最新稳定版本上弃用”让我怀疑可能是Rails的猴子修补已被弃用),为什么它被弃用了?

当使用::?指定模块时,为什么Ruby不能在更高的范围内查找类?

我只是坚持了一段时间。 拿这个基础: module Top class Test end module Foo end end 后来,我可以通过这样做在Foo中定义扩展Test的类: module Top module Foo class SomeTest < Test end end end 但是,如果我尝试通过使用::来指定模块来最小化缩进: module Top::Foo class Failure < Test end end 这失败了: NameError:未初始化的常量Top :: Foo :: Test 这是一个错误,还是只是Ruby解析变量名称的逻辑结果?

尝试使用mysql2 gem安装应用程序时出错

我试图安装一个使用mysql2 gem的开源rails 3.2.21应用程序,但是当我尝试运行bundle commant时,我收到以下错误: Fetching: mysql2-0.3.18.gem (100%) Building native extensions. This could take a while… p ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. /Users/my_username/.rvm/rubies/ruby-2.1.2/bin/ruby -r ./siteconf20150614-72129-orqsb7.rb extconf.rb checking for ruby/thread.h… yes checking for rb_thread_call_without_gvl() in ruby/thread.h… yes checking for rb_thread_blocking_region()… yes checking for rb_wait_for_single_fd()… yes checking for rb_hash_dup()… yes checking for […]

如何在Rails 3中为社交网络应用程序实现友谊模型?

我目前正在开发一个小型社交网络应用程序,现在我正在尝试创建一个代表用户之间友谊的模型。 这是我到目前为止提出的: class User :friendships end class Friendship ‘User’ end 我的友谊模型有一个确认为布尔值的字段,我想用它来定义一个待定或确认的友谊。 如何访问特定用户的所有待处理请求? 我可以使用Rails的范围方法以某种方式定义它吗? 就像是 current_user.friendships.requests # => [Friendship, Friendship, …] 会很好。 如何使这种关联双向化? 一旦确认了朋友请求,我就会添加另一个友谊,这样我的友谊表看起来就像这样: | user_id | friend_id | confirmed | ———————————– | 1 | 2 | true | | 2 | 1 | true |

Ruby单引号和双引号

我最近一直使用Ruby进行编码,并且来自Python,据我所知,单引号和双引号对代码的工作方式没有任何影响。 我转到Ruby看看它是如何工作的,并调查Ruby和Python之间的相似之处。 我曾使用单引号字符串并注意到这一点: hello = ‘hello’ x = ‘#{hello} world!’ puts x 它返回’#{hello} world!’ 而不是’hello world!’ 。 注意到这一点后,我尝试了双引号,问题得到解决。 现在我不确定为什么会这样。 单引号和双引号会改变这个还是因为我的编辑器(Sublime text 3)? 如果它在以前的版本中工作方式不同,我也使用Ruby 2.0版。