Tag: ruby

如何在Ruby中使正则表达式的一部分可选?

要匹配以下内容: On Mar 3, 2011 11:05 AM, “mr person” wrote: 我有以下正则表达式: /(On.* (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{1,2}, [12]\d{3}.* at \d{1,2}:\d{1,2} (?:AM|PM),.*wrote:)/m 有没有办法让at在可选? 所以,如果它很好,如果没有,它仍然匹配?

如何删除mysql数据库中的重复记录?

使用rails或mysql查询删除mysql数据库中重复记录的最佳方法是什么?

TypeError:Ruby中类Word的超类不匹配

我正在创建一个Word类,我收到一个错误: TypeError:类Word的超类不匹配 这是irb代码: irb(main):016:0> class Word irb(main):017:1> def palindrome?(string) irb(main):018:2> string == string.reverse irb(main):019:2> end irb(main):020:1> end => nil irb(main):021:0> w = Word.new => # irb(main):022:0> w.palindrome?(“foobar”) => false irb(main):023:0> w.palindrome?(“level”) => true irb(main):024:0> class Word def palindrome? irb(main):026:2> self == self.reverse irb(main):027:2> end irb(main):028:1> end TypeError: superclass mismatch for class Word from (irb):24 from […]

Ruby Fibonacci算法

以下是我编写的用于计算Fibonacci序列中的值的方法: def fib(n) if n == 0 return 0 end if n == 1 return 1 end if n >= 2 return fib(n-1) + (fib(n-2)) end end 它起作用n = 14,但之后我得到一条消息说程序花了太长时间才响应(我正在使用repl.it)。 任何人都知道为什么会这样吗?

tmp中的权限被拒绝

我刚刚使用Ruby 1.9.2部署了一个Rails 3应用程序。 我遇到了几个错误。 application.css没有编译。 所以我将production.rb预编译设置为false; 然后我得到了: cannot generate tempfile ,所以我确实rake tmp:clear ; 现在我得到ActionView::Template::Error (Permission denied – /srv/www/appname/tmp/cache/assets):我无法解决这个问题。 请帮忙。

nil的未定义方法`eq’:nilClass with rails 3和ruby enterprise on ubuntu hardy

我不确定是什么原因导致这个错误但是因为我在乘客中遇到了这个问题而现在在控制台中我也在想,也许mysql驱动程序是问题所在? 在osx / 10.6上,一切都按预期工作。 它只是不会在Ubuntu 8.04上耐用。 我把问题钉在了“destroy”方法上,或者当我直接调用activerecord实例的方法时。 为什么会这样? 有任何想法吗? 系统: Ubuntu 8.04耐用。 ruby 1.8.7(2010-04-19 patchlevel 253)[i686-linux],MBARI 0x8770,Ruby Enterprise Edition 2010.02 rails 3.0.0-beta4 mysql Ver 14.12 Distrib 5.0.51a,debian-linux-gnu(i486)使用readline 5.2 这是错误输出 root@gehege:/var/www/foobar.com/api.foobar.com/v1# rake cleanup:status_cleanup RAILS_ENV=production –trace (in /var/www/foobar.com/api.foobar.com/v1) ** Invoke cleanup:status_cleanup (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute cleanup:status_cleanup rake aborted! undefined method `eq’ […]

如何通过“http://gems.rubyforge.org/似乎不是存储库”错误消息

问题828421问了类似的问题,但只收到一个真正的答案(更新rubygems),并且该尝试导致相同的错误。 Windows上的Ruby版本1.9.1.p243。 包含Gem,版本1.3.5。 从未安装任何gem; 从来没有为这个Ruby做任何特殊的配置。 Ruby本身和irb一样工作,“gem”运行但不能安装(也许还有其他操作)。 试过这个(从一本书): gem安装rspec 明白啦: 错误: http : //gems.rubyforge.org/似乎不是一个存储库 错误:执行gem时…(Gem :: RemoteFetcher :: FetchError)SocketError:getaddrinfo:存储控制块被破坏。 ( http://gems.rubyforge.org/yaml ) 当我使用MSIE7访问该URL(没有“yaml”)时,我得到一个标题为“Gemcutter | awesome gem hosting”的页面,并且没有任何问题在该网站上游荡。 所以我不认为 – 这是一个代理问题(虽然这都是来自企业防火墙/代理/等)。 当我转到那个URL -with-“yaml”时,它转到“ http://production.s3.rubygems.org/yaml ”并显示我认为是更新规范页面,从这开始:—!ruby/对象:gem:: SourceIndex 我没有销毁任何“存储控制块”。 那么什么阻止gem安装gem? 网络搜索显示很多人在很长一段时间内都遇到同样的问题,但是我还没有看到有人说“这是因为这个,所以要解决这个问题。” 好吧,有人建议更新“gem”,但尝试得到同样的错误。 请帮忙?

迭代Ruby中深度嵌套的哈希级别

所以我有一个哈希,对于每个哈希级别,我想存储它的键和值。 问题是,值可以是另一个哈希数组。 此外,该哈希可以包含键值对,其中值又是另一个哈希数组等等。另外,我不知道每个哈希的嵌套程度有多深。 举个例子: { :key1 => ‘value1’, :key2 => ‘value2’, :key3 => { :key4 => ‘value4’, :key5 => ‘value5’ }, :key6 => { :key7 => ‘value7’, :key8 => { :key9 => ‘value9’ } } } ..等等。 我想要做的是保存每个键,值对和其父级的ID。 我认为这可能是递归完成的,我只是不确定如何因为我不熟悉递归函数。 我知道如何正常迭代数据: myHash.each {|key, value| …Do something with the key and value … } 所以我猜测递归调用将是这样的: def save_pair […]

如何运行单个RSpec测试?

我有以下文件: /spec/controllers/groups_controller_spec.rb 我在终端中使用什么命令来运行该规范以及在哪个目录中运行命令? 我的gem文件: # Test ENVIRONMENT GEMS group :development, :test do gem “autotest” gem “rspec-rails”, “~> 2.4” gem “cucumber-rails”, “>=0.3.2” gem “webrat”, “>=0.7.2” gem ‘factory_girl_rails’ gem ’email_spec’ end 规格文件: require ‘spec_helper’ describe GroupsController do include Devise::TestHelpers describe “GET yourgroups” do it “should be successful and return 3 items” do Rails.logger.info ‘HAIL MARRY’ get :yourgroups, […]

Ruby中的’|| =’运算符

有人可以向我解释以下Ruby代码的含义吗? (我在一个人的项目中看到了这段代码): car ||= (method_1 || method_2 || method_3 || method_4) 上面的代码和下面的代码有什么区别? car = method_1 || method_2 || method_3 || method_4 ———-更新————– 好的,在阅读@ Dave的解释之后,我得到了||=运算符的含义,我的下一个问题是,如果method_2 , method_3和method_4返回一个值,哪一个值将分配给car ? (我猜car最初是零 )