Tag: ruby

Ruby的正则expression式有一个不匹配的运算符,比如Perl中的“!〜”吗?

我只是想知道ruby正则expression式是否有一个不匹配的运算符就像!~在Perl中。 我觉得使用(?!xxx)或(?<!xxxx)是不方便的,因为你不能在xxx部分使用正则expression式模式。

如何获取请求引用path?

我需要推荐人的path。 我不想要域名。 例如,如果推荐人是http://www.google.com/adsense我想要/adsense 。

Ruby中的自然语言处理

我期待做一些句子分析(主要是twitter应用程序),并推断一些一般特征。 Ruby中有这种types的自然语言处理库吗? 类似于有一个很好的自然语言处理库,但对于Ruby。 我更喜欢一些非常一般的东西,但任何线索感谢!

从Rails 3升级到Rails 3.1

你如何从Rails 3升级到Rails 3.1 beta?

inheritanceRuby中的modules / mixins的类方法

众所周知,在Ruby中,类方法被inheritance: class P def self.mm; puts 'abc' end end class Q < P; end Q.mm # works 然而,对于我来说,它并不适用于mixin: module M def self.mm; puts 'mixin' end end class N; include M end M.mm # works N.mm # does not work! 我知道#extend方法可以做到这一点: module X; def mm; puts 'extender' end end Y = Class.new.extend X X.mm # works […]

ruby将数组转换为函数参数

说我有一个数组。 我希望将数组传递给一个函数。 然而,函数需要两个参数。 有没有办法即时将数组转换为2个参数? 例如: a = [0,1,2,3,4] b = [2,3] a.slice(b) 会在Ruby中产生一个错误。 我需要inputa.slice(b[0],b[1])我正在寻找更优雅的东西,如在a.slice(foo.bar(b))谢谢。

Ruby:define_method与def

作为编程练习,我编写了一个创build类的Ruby片段,实例化该类中的两个对象,monkeypatches一个对象,并依靠method_missing来monkeatch另一个对象。 这是交易。 这按预期工作: class Monkey def chatter puts "I am a chattering monkey!" end def method_missing(m) puts "No #{m}, so I'll make one…" def screech puts "This is the new screech." end end end m1 = Monkey.new m2 = Monkey.new m1.chatter m2.chatter def m1.screech puts "Aaaaaargh!" end m1.screech m2.screech m2.screech m1.screech m2.screech 你会注意到我有一个method_missing的参数。 我这样做是因为我希望使用define_methoddynamic创build具有适当名称的缺less方法。 但是,它不起作用。 […]

我怎样才能从一个块早期返回一些东西?

如果我想要做这样的事情: collection.each do |i| return nil if i == 3 ..many lines of code here.. end 我将如何得到这种效果? 我知道我可以用一个大的if语句将所有内容都包裹起来,但是如果可能的话,我想避免嵌套。 rest不会在这里工作,因为我不想停止迭代其余的元素。

Rails – 最佳实践:如何创build相关的has_one关系

你能告诉我最好的做法是什么创buildhas_one关系? 如果我有一个用户模型,它必须有一个configuration文件… 我怎么能做到这一点? 一个解决scheme是: # user.rb class User << ActiveRecord::Base after_create :set_default_association def set_default_association self.create_profile end end 但是,这似乎不是很干净…任何build议?

如何清除sidekiq的所有工作?

我在Rails应用程序中使用sidekiq作为后台任务。 现在工作的数量变多了,所以我想清除所有的工作。 我在控制台中尝试了以下命令 Sidekiq::Queue.new.clear 但是它给了以下错误。 NameError: uninitialized constant Sidekiq::Queue 我如何清除sidekiq的所有工作?