Questions tagged «ruby»

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

12
我们有理由不能迭代红宝石的“反向范围”吗?
我试图使用Range和向后迭代each: (4..0).each do |i| puts i end ==> 4..0 通过迭代0..4写入数字。在其他范围r = 4..0似乎是确定,r.first == 4,r.last == 0。 我对上面的构造没有产生预期的结果感到奇怪。是什么原因呢?这种行为是合理的情况是什么?
104 ruby  iteration  range 

8
获取数组元素的索引比O(n)更快
给定我有一个巨大的数组,并从中得到一个值。我想获取数组中值的索引。还有其他方法,而不是致电Array#index获取吗?问题来自需要保持非常大的数组并调用Array#index大量的时间。 经过几次尝试,我发现通过存储具有字段的结构而不是值本身来缓存元素内部的索引(value, index)在性能方面迈出了一大步(获胜20倍)。 我仍然想知道是否有一种更方便的方法来查找en元素的索引而不进行缓存(或者有一种很好的缓存技术可以提高性能)。

1
从本地文件或URL打开IO流
我知道有其他语言的库可以采用包含本地文件路径或url的字符串并将其作为可读IO流打开。 有没有简单的方法可以在红宝石中做到这一点?
104 ruby  stream 

5
将对象数组转换为ActiveRecord :: Relation
我有一个对象数组,我们称它为Indicator。我想def self.subjects在此数组上运行指标类方法(种类,范围等)。我知道在一组对象上运行类方法的唯一方法是使它们成为ActiveRecord :: Relation。因此,我最终不得不向添加一个to_indicators方法Array。 def to_indicators # TODO: Make this less terrible. Indicator.where id: self.pluck(:id) end 有时,我在类方法中链接了许多这些作用域以过滤结果。因此,即使我在ActiveRecord :: Relation上调用方法,我也不知道如何访问该对象。我只能通过了解它的内容all。但是all是一个数组。因此,我必须将该数组转换为ActiveRecord :: Relation。例如,这是方法之一的一部分: all.to_indicators.applicable_for_bank(id).each do |indicator| total += indicator.residual_risk_for(id) indicator_count += 1 if indicator.completed_by?(id) end 我想这可以归结为两个问题。 如何将对象数组转换为ActiveRecord :: Relation?最好不要where每次都做。 在def self.subjectsActiveRecord :: Relation上运行类型方法时,如何访问该ActiveRecord :: Relation对象本身? 谢谢。如果我需要澄清任何事情,请告诉我。


13
Windows上的ExecJS :: RuntimeError尝试遵循rubytutorial
更新: 科林的建议删除行// = require_tree。已解决此问题。 我已经浪费了超过2天的时间来尝试遵循所有建议并解决我的问题。我正在尝试在Windows机器上关注http://ruby.railstutorial.org一书,但我一生无法克服以下令人讨厌的错误。 ExecJS::RuntimeError in Static_pages#home Showing C:/Users/.../bootcamp-sample-app/app/views/layouts/application.html.erb where line #6 raised: ["ok","(function() {\n\n\n\n}).call(this);\n"] (in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee) Extracted source (around line #6): 3: <head> 4: <title><%= full_title(yield(:title)) %></title> 5: <%= stylesheet_link_tag "application", media: "all" %> 6: <%= javascript_include_tag "application" %> 7: <%= csrf_meta_tags %> 8: <%= render 'layouts/shim' %> …


5
重用黄瓜步骤
我想重用一些Cucumber步骤,但似乎找不到正确的方法。 我想写一个像这样的步骤: Given /^I login with (.*) credentials$/ |type| # do stuff with type being one of "invalid" or "valid" end 但是,再执行以下步骤: Given /^I login successfully$ # call "Given I login with valid credentials" end 因此,在测试用户身份验证时,我可以使用前者,但在大多数其他地方,我可以使用后者,而实际上不必复制代码。 有没有一种方法可以调用其他步骤,或者我只是将逻辑放在辅助方法中,然后从每个任务中调用该方法(基本上是方法提取重构,在阅读了我的问题后,我认为这实际上是最好的方法无论如何)?
103 ruby  testing  cucumber 

3
在Ruby中查找字符串中#个字符的出现
我正在寻找Ruby方法(1.9 ...),该方法可以帮助我查找字符串中字符出现的次数。我正在寻找所有事件,而不仅仅是第一次。 例如:“忧郁症是一个菜鸟”字母“ a”有两次出现。为了找到这个,我可以使用什么Ruby方法? 我一直在使用Ruby-doc.org作为参考,并且这种scan方法String: class引起了我的注意。我的措辞有点难以理解,因此我并没有真正掌握的概念scan。 编辑:我能够使用解决此问题scan。我在视频中分享了如何实现目标。
103 ruby  string  methods 

4
返回随机布尔值的最佳方法
我已经使用了一段时间,true或者false在构建伪种子数据时返回。只是想知道是否有人有更好,更简洁或冗长的方式来返回trueor false。 rand(2) == 1 ? true : false
103 ruby 

4
如何设置基本的Ruby项目?
我想创建一个包含10〜20个类/文件的小型Ruby项目。我需要一些宝石,我想使用RSpec作为测试框架。 稍后我可能想构建一个宝石,但是并不确定。 是否有一些方法或指南向我展示如何设置项目的基本结构? 我的问题是: 我将所有自定义的错误/异常放在哪里? 是否有一些用于命名目录(例如lib,bin,src等)的约定? 我应该在哪里放置测试数据或文件? 我在哪里需要所有文件,以便可以在项目中访问它们? 我知道我可以从头开始做所有事情,但是我需要一些指导。我可以复制一些好的宝石,但是我不确定我真正需要什么以及可以删除什么。 我看了http://gembundler.com/,但是在设置Bundler之后它停止了。


4
RSpec控制器测试-空白response.body
使用RSpec测试我的控制器时,我遇到了一个问题-response.body调用始终返回空字符串。在浏览器中,所有内容均可正确渲染,黄瓜功能测试似乎可以正确处理,但RSpec每次都失败。 对响应对象的其他期望,例如response.should render_template('index')通过没有任何问题。 你们有没有遇到过这个问题?也许可以以其他方式获得响应html? 至于版本,Rails 2.1.0,RSpec 1.2.7。

4
在Ruby中找到文件名的扩展名
我正在研究Rails应用程序的文件上传部分。应用程序对不同类型的文件的处理方式不同。 我想将某些文件扩展名列入白名单,以检查上载的文件以查看它们应该去的位置。所有文件名都是字符串。 我需要一种方法来仅检查文件名字符串的扩展名部分。文件名均采用“ some_file_name.some_extension”的格式。

4
停止执行Ruby脚本
有没有类似PHP中的方法exit或diePHP中的一种方法可以停止执行Ruby脚本?
102 ruby 

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.