问题标签 [ruby-2.6]

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 投票
1 回答
49 浏览

ruby - 无法在 Ruby 脚本中加载相关文件

文件组织如下:

解决方案.ru

主文件

我试图运行脚本:

然后我收到一条 LoadError 消息。

在这种情况下可能是什么问题?

顺便说一句,我的 Ruby 环境是由 rbenv 管理的。

0 投票
2 回答
366 浏览

arrays - 有没有办法指定如何在 Ruby 2.6.0 中比较 .difference 函数的对象数组?

我正在尝试比较一组外部定义的对象。我希望我能够做一个简单.difference的 Ruby 2.6.0 中引入的函数,但在查看它之后:https ://ruby-doc.org/core-2.6/Array.html#method-i-差异我不确定我是否可以指定自定义比较。

好的,假设我们有一个简单的 Object Num

我有两个数组,一个是另一个的子集。我想找出子集缺少的东西。在以下示例中,我希望差异是值为 3 的对象,因为它不存在于子集中。

默认.difference函数比较.eql?两个对象之间的使用,因此差异不会给出预期的结果:

我能够创建自己的自定义 hacky 解决方案,以正确地为我提供我想要的值:

但是我想知道是否有任何方法可以利用现有.difference功能,我也试图像这样使用以覆盖两个对象的比较方式:

但这对调整比较发生的方式没有任何作用(AFAIK)我做错了吗?这是不可能的吗?:'(

0 投票
1 回答
103 浏览

ruby - 使用 Ruby 2.6 隐藏命令的输出

我不确定这是 Ruby 2.6 的错误或新功能,但自从执行升级 2.3 --> 2.6 后,我的 IRB 终端不再像往常一样运行,无法再隐藏输出。以前当我输入分号时,它会等到收到没有分号的下一条指令才能运行所有代码并用分号隐藏值

使用ruby-2.6.3 [ x86_64 ]和 IRB 终端从rails-5.1.6

我该怎么做才能隐藏命令的输出?目标是避免inspect在返回非常大的集合时打印大量字符串

编辑:我可以在分号后系统地添加一个 0 或其他东西,但感觉很便宜

EDIT2:Ruby 2.3.x 之前发生的事情:

0 投票
1 回答
56 浏览

ruby - 不带参数的函数组合:参数数量错误(给定 1,预期为 0)

IE:

有没有一种优雅的方式来解决这个问题?:-)

在我受到功能纯粹主义者的攻击之前,这不是代码高尔夫,即使我必须承认我很享受自己:P - 我正在尝试看看是否有一种很好的方法来使用函数组合来禁用集成测试中的事件跟踪使用基于回调的基础设施,其工作是浏览网页,它的唯一工作是在这个意义上操纵全局状态并执行类似的操作

Ruby 的“一切都返回一些东西”在这里咬人,因为没有任何方法接受任何参数,并且 arity 检查会因此而感到不安。添加无用的论点只是为了满足我玩>>/的愿望<<是愚蠢的,所以我想知道我是否应该做一些不同的事情?

0 投票
2 回答
2632 浏览

ruby-on-rails - 安装 Rails 6.0.0 时出错:无法构建 gem 原生扩展

我第一次尝试安装 Ruby 和 Rails,但无法正确安装 Rails v6。我的机器是 Windows 10。我有 Ruby 2.6.5p114 和 RubyGems 3.0.6。我正在尝试安装 rails 6.0.0。我的终端显示安装进展顺利,直到它尝试构建本机扩展。我想知道我是否在尝试安装不正确的 Ruby、Rails 或 RubyGems 版本?这是完整的命令提示符,底部有错误 -

D:\Program Files\Ruby26-x64\lib\ruby\gems\2.6.0\extensions\x64-mingw32\2.6.0\websocket-driver-0.7.1\gem_make.out 下的文件包含以下内容 -

我尝试像其他帖子建议的那样更新 Gem,但没有成功。对我的问题的任何见解将不胜感激!

更新:Rails v4.0.0 安装良好。v5.0.0 提供了相同的错误。我在运行 Ruby 2.6.5p114 和 Gems 3.0.6 以及使用 Rails 4.0.0 时会遇到问题吗?使用此较低版本我将无法做哪些事情?我宁愿不满足于 v4,我宁愿拥有 v6。

更新 2:Rails v4.2.11.1 也可以正常安装。它最近一次更新是在 2019 年 3 月,尽管 v5 是在 2016 年 6 月发布的。我现在会坚持使用 v4.2.11.1,直到有其他帮助。

0 投票
1 回答
61 浏览

ruby - 有条件的地图

如果是,我该如何#map隐藏属性nil

条件在块内不起作用,所以我尝试了这个:

我期望:

但得到:

如何获得预期的输出?

0 投票
0 回答
958 浏览

ruby - 如何在 Rails 应用程序中将 Ruby 2.3.1 升级到 2.6.5,并使用工具或 gem 验证兼容性和弃用检查

当前的 Ruby 版本是 2.3.1,想升级到 2.6.5;Rails 版本 5.2.2,过段时间想升级到 6.0.0

我的第一个问题是直接升级到 2.6.5 还是通过主要版本升级是个好方法??

第二个问题,是否有任何工具或 gem 可用于验证新版本的弃用警告或兼容方法

这样它有助于在最终签入存储库之前验证弃用和其他不兼容的方法,或者有一个脚本可以遍历我的代码以搜索潜在问题?

我知道确保更顺畅升级的最佳方法之一是在升级前后运行完整的测试覆盖率。

想知道其他升级方式,例如工具/宝石或任何脚本。

提前致谢

0 投票
0 回答
42 浏览

ruby - Ruby 中 @var 和 attr_accessor 之间的奇怪行为差异

我发现实例 var( @var) 和attr_accessor. 我相信当在 中指定时attr_accessorvar=some_value其行为应该与@var=some_value. 但是,下面的代码片段(在第 10 行中不使用符号时,Ruby 中的 LinkedList 实现会中断@。谁能解释为什么会发生这种情况?我已经在 Ruby 2.6.1 和 2.6.5 中进行了测试。

0 投票
1 回答
157 浏览

ruby-on-rails - Rails 服务器自动退出。这就是我在下面看到的:

0 投票
1 回答
80 浏览

ruby-on-rails - "@var ||= 123" 和 "return @var if defined?(@var); @var = 123" 有什么区别?

我在本地机器上使用 ruby​​ 2.6.5。我也在 heroku 机器上使用相同的 ruby​​ 版本。

但是我在使用heroku时遇到了奇怪的错误。

如果我定义了一个方法,如:

它在我的机器上完美运行,在 heroku 上它会引发 NameError:

但是当我这样做时:

它适用于两台机器。

导致第一个语法在heroku上失败的区别到底是什么?

* 更新 *

我为使其在heroku上工作而制作的差异。