问题标签 [ruby-2.4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1596 浏览

arrays - 如何找到数组最大值的索引?

我尝试了这里推荐的解决方案——在 Ruby 中,获取数组中最大值的索引的最干净的方法是什么?

但我得到了一些例外:

0 投票
1 回答
206 浏览

ruby - 如何获取克隆的惰性枚举器的大小

我们有一个 Enumerator::Lazy 对象

有人对这种行为有正确的解释吗?我知道size返回枚举器的大小,如果不能懒惰地计算,则返回 nil。当我们克隆对象时它返回

0 投票
1 回答
133 浏览

ruby - 为什么在 Ruby 2.4 中冻结了 singleton_class 对象,而在 2.3 中却没有?

我们有一个应用程序,它使用 Sequel gem 连接到数据源,执行一些工作,然后返回一个结果,该结果具有许多附加到该singleton_class对象的便利方法。在 ruby​​ 2.3 中,此代码按预期工作:

我们可以看到使用 ruby​​ 2.3.4 的 singleton_class 没有被冻结:

但在 Ruby 2.4.2 中,它似乎singleton_class被作为冻结返回,我们不能再扩展它。有没有一种新的方法来扩展我应该使用的单例?

0 投票
3 回答
83 浏览

ruby - 如何从字符串末尾拆分令牌?

如果在字符串末尾找到来自数组的标记,我想将字符串分成两部分。我试过这个:

但是,虽然“女性”这个词是我标记的一部分,但它并没有被分开。如何调整我的正则表达式以使其正确拆分?

0 投票
1 回答
551 浏览

ruby - 在 Ruby 中生成随机数有多贵?

假设您想生成一个介于 1 到 10 亿之间的随机数:

每次调用这行代码时,Ruby 会从该范围创建一个数组吗?

Rubocop 建议结束这种方法,rand(1_000_000_000)+1但似乎有可能带来痛苦。

Ruby 的文档是这样说的:

+max+传递给的参数在哪里rand,但它没有说明它是如何获得number参数的。我也不确定调用.member?范围是否有效。

有任何想法吗?

我可以使用基准,但仍然对这里的内部工作感到好奇。

0 投票
1 回答
1205 浏览

ruby-on-rails-5 - Capistrano 在 rvm 更新后使用错误的 ruby​​ 版本

我有一个 capistrano 3.4.0 脚本,已经成功部署了多年的应用程序。但是今天我更新了 RVM 并尝试部署我正在升级到 Rails 5.1.4 的 Rails 应用程序。Capistrano 似乎在第一部分工作得很好,但随后抛出了这个错误......

显然我不想使用 ruby​​ 1.9.1,当我 ssh 进入 linux 并执行 ruby​​ -v 时,它显示 Ruby 2.4.1。我通过使用将其设置为默认值

我也在使用 capistrano-rvm gem,当 capistrano 脚本开始部署时,它说

为什么在部署中途切换到 ruby​​ 1.9.1?如何让它使用我的默认 ruby​​ 版本 2.4.1?

0 投票
0 回答
205 浏览

rspec - 运行 rspec 时获取“ruby-2.4.2/lib/ruby/2.4.0/forwardable.rb:157 转发到私有方法”

我已将我的应用程序从 Ruby 2.2.3 升级到 Ruby 2.4.2,Rails 版本是 5.1.4。我能够升级应用程序,但是当我运行“bundle exec rspec”时,得到太多类似于

我遇到了解释这些行原因的链接: Forwardable break on private methods in ruby​​ 2.4 但我没有得到任何解决方案来删除它们。

谁能指导我如何删除这些行?

0 投票
2 回答
1187 浏览

ruby - 等待一个线程在 Ruby 中死亡

看来,在 Ruby 2.4 和 2.5 中,线程不会在您调用#kill它们时立即死亡。此代码段将打印Not dead几次:

我想阻止主线程的执行,直到辅助线程被杀死。我尝试使用thread.join.kill,但这当然会阻塞主线程,因为线程的循环永远不会终止。

如何确保在主线程继续之前杀死线程?

0 投票
1 回答
112 浏览

ruby - 为什么要定义一个名为 ! 打破IRB?

IRB 在定义一个名为!.

要重现这一点,请在 IRB 中输入以下内容:

创建方法后,IRB 会无限打印foo

据我所知,您不能直接调用以!Ruby 语法命名的方法;你必须send改用。 编辑:您可以作为前缀运算符调用;!这只是否定:!x

为什么这个定义会导致 IRB 无限循环?IRB 是否依赖于一种名为!打印其提示或类似内容的方法?

我在 Windows 10 上使用 Ruby 2.4.3 和 IRB 0.9.6。

0 投票
1 回答
220 浏览

ruby-on-rails-5 - 启动rails控制台时出错

当我尝试启动 Rails 控制台时,出现以下错误,

我怎样才能解决这个问题?