Questions tagged «ruby»

Ruby是由松本行弘(Matz)于1995年创建的一种多平台开放源代码,动态的,面向对象的解释性语言。[ruby]标记用于与Ruby语言有关的问题,包括其语法和库。Ruby on Rails问题应标记为[ruby-on-rails]。

2
ruby将数组转换为函数参数
说我有一个数组。我希望将数组传递给函数。但是,该函数需要两个参数。有没有一种方法可以快速将数组转换为2个参数?例如: a = [0,1,2,3,4] b = [2,3] a.slice(b) 在Ruby中会产生错误。我需要输入,a.slice(b[0],b[1])我正在寻找更优雅的东西,例如,a.slice(foo.bar(b)) 谢谢。

7
检查字符串是否与ruby中的正则表达式匹配的最快方法?
检查字符串是否与Ruby中的正则表达式匹配的最快方法是什么? 我的问题是,我必须通过大量的字符串“ egrep”来查找与运行时给出的regexp匹配的字符串。我只在乎字符串是否与正则表达式匹配,不在乎匹配的位置,也不在乎匹配组的内容。我希望这个假设可以减少我的代码用于匹配正则表达式的时间。 我加载正则表达式 pattern = Regexp.new(ptx).freeze 我发现它string =~ pattern的速度比稍快string.match(pattern)。 还有其他技巧或捷径可以使测试更快吗?


14
在Ruby中,是否存在结合“选择”和“映射”的Array方法?
我有一个包含一些字符串值的Ruby数组。我需要: 查找与某些谓词匹配的所有元素 通过转换运行匹配的元素 以数组形式返回结果 现在,我的解决方案如下所示: def example matchingLines = @lines.select{ |line| ... } results = matchingLines.map{ |line| ... } return results.uniq.sort end 是否存在将select和map组合为单个逻辑语句的Array或Enumerable方法?
96 ruby 

7
将目录添加到$ LOAD_PATH(Ruby)
我已经看到了两种将当前正在执行的文件目录添加到$ LOAD_PATH(或$ :)中的常用技术。如果您不使用gem,我会看到这样做的好处。显然,一个人比另一个人更冗长,但是是否有理由将一个人与另一个人放在一起? 第一种冗长的方法(可能会过大): $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__))) 更直接,快捷和肮脏: $:.unshift File.dirname(__FILE__) 有什么理由要互相反对吗?

8
没有记录时使用nil的find()
在我当前的Rails程序中,当我使用类似 user = User.find(10) 当没有ID = 10的用户时,我将遇到类似以下的异常: ActiveRecord::RecordNotFound: Couldn't find User with ID=10 我可以得到nil而不是引发异常,所以当我做类似的事情时: unless user = Challenge.find(10) puts "some error msg" end 我只想在没有记录且不想使用开始/救援时得到nil 谢谢

10
在Ruby中将私有方法放在哪里?
大多数博客,教程或书籍在任何类/模块的底部都有私有方法。这是最佳做法吗? 我发现在需要时使用私有方法更为方便。例如: public def my_method # do something minion_method end private def minion_method # do something end public def next_method end 这样,我发现代码更具可读性,而不是不断地上下滚动,这很烦人。 这种方法是否存在严重错误?在底部使用私有方法不仅是一种最佳实践,还是其他?
95 ruby  conventions 


4
将应用程序推送到heroku问题
我试图将我的应用程序推送到heroku,并且收到以下消息: $ heroku create Creating electric-meadow-15..... done Created http://electric-meadow-15.heroku.com/ | git@heroku.com:electric-meadow-1 5.git $ git push heroku master ! No such app as fierce-fog-63 fatal: The remote end hung up unexpectedly 我现在明白了,这很奇怪,我已经将应用程序多次推送到heroku了,没有出现问题。最奇怪的是,这fierce-fog-63是我很久以前制作并删除的旧应用。为什么现在heroku尝试推送到该应用程序不再存在,特别是当我创建了一个新应用程序时?有什么建议?

2
Rails控制台:重新加载!没有反映模型文件中的更改?可能是什么原因?
之前它工作正常。我一直在玩一些配置。所以可能是我在不知不觉中更改了一些配置。 这是环境/ development.rb的配置 config.cache_classes = false # Log error messages when you accidentally call methods on nil. config.whiny_nils = true # Show full error reports and disable caching config.consider_all_requests_local = true config.action_view.debug_rjs = true config.action_controller.perform_caching = false # Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = false # Print …


4
Ruby自定义错误类:message属性的继承
我似乎找不到有关自定义异常类的更多信息。 我所知道的 您可以声明您的自定义错误类,并使其继承自StandardError,因此可以使用rescued: class MyCustomError < StandardError end 这使您可以使用以下方法提高它: raise MyCustomError, "A message" 然后在救援时得到该消息 rescue MyCustomError => e puts e.message # => "A message" 我不知道 我想给我的异常一些自定义字段,但我想message从父类继承属性。我发现阅读关于这个主题是@message不是异常类的实例变量,所以我担心我的产业将无法正常工作。 谁能给我更多细节吗?如何实现带有object属性的自定义错误类?以下是正确的: class MyCustomError < StandardError attr_reader :object def initialize(message, object) super(message) @object = object end end 然后: raise MyCustomError.new(anObject), "A message" 要得到: rescue MyCustomError …

16
如何从哈希中提取子哈希?
我有一个哈希: h1 = {:a => :A, :b => :B, :c => :C, :d => :D} 提取像这样的子哈希的最佳方法是什么? h1.extract_subhash(:b, :d, :e, :f) # => {:b => :B, :d => :D} h1 #=> {:a => :A, :c => :C}
95 ruby  hash 

4
从Ruby中的模块/混合继承类方法
众所周知,在Ruby中,类方法被继承: class P def self.mm; puts 'abc' end end class Q < P; end Q.mm # works 但是,令我惊讶的是它不适用于mixins: 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 = …
95 ruby  mixins 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.