问题标签 [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 投票
4 回答
9067 浏览

ruby-on-rails - 是否可以在 Ruby 2.4 上运行 Rails 4.2 应用程序?

我想在 Ruby 2.4 上试用 Rails 4.2 应用程序。

但是,当我尝试这样做时,我收到有关 json gem 版本 1.8.3 无法安装的错误。

我认为这是由于 Fixnum 和 Bignum 统一为 Integer。

如果我在 Gemfile 中添加 json 必须是 2.0.0 版本的约束,那么它会抱怨 Rails 4.2 需要 json ~> 1.7,它禁止 2.0.0。

除非 Rails 的维护者决定对 Rails 的非 5.x 版本进行更改,或者 json gem 的维护者决定为他们的 gem 制作一个新的非 2.x 版本,否则我会不走运吗?

0 投票
1 回答
8066 浏览

ruby-on-rails - Ruby 2.4 升级后 - 尝试加载 gem 'uglifier' 时出错 (Bundler::GemRequireError)

我刚刚升级了我的应用程序以使用 Ruby 2.4.0,在捆绑过程中没有任何错误。但是,当我尝试启动服务器时,出现以下错误:

我在此站点上的其他答案中发现您需要添加gem 'therubyracer'到您的 Gemfile 中,但自从创建我的应用程序以来我已经有了它。

我的机器上也安装了最新版本的 NodeJS。

有没有其他人遇到过这个错误并且知道如何解决它?

Gemfile 中的 uglifier 配置:gem 'uglifier', '~> 3.0.4'

全栈跟踪:

0 投票
3 回答
136 浏览

arrays - 在 Ruby 中,如何检查数组中至少 80% 的元素是否与模式匹配?

我正在使用 Ruby 2.4。如何检查数组中至少 80% 的元素是否与某个模式匹配?我想看看每个元素是否与正则表达式匹配

0 投票
1 回答
479 浏览

ruby-on-rails - 在 Rails 中动态包含对象的关联

我目前正在开发一个小型 Rails 5 应用程序,我需要根据某些事件将 ActiveRecord 对象传递给外部服务。在我的模型中,我定义了以下内容:

然后EventHandler将此对象转换为 JSON,并通过 HTTP 请求将其发送到外部服务。通过调用.to_json该对象,这将呈现一个 JSON 输出,如下所示:

现在,我需要一种将所有第一级关联直接包含在其中的方法,而不仅仅是显示foreign_key。所以我正在寻找的结构是这样的:

我的第一个想法是像这样反思模型:在这种情况下,用户的实例object.class.name.constantize.reflect_on_all_associations.map(&:name)在哪里object,并使用此列表循环关联并将它们包含在输出中。不过,这似乎相当乏味,所以我想知道是否有更好的方法可以使用 Ruby 2.4 和 Rails 5 来实现这一点。

0 投票
1 回答
66 浏览

arrays - 如何切换字符串中单词的位置?

我有一个字符串数组,每个字符串中至少有一个空格。对于数组中的每个元素,我想将字符串的最后一部分放在开头。因此,例如,如果我的数组中有这个

我希望结果是

我试过这个

但唯一的问题是,如果字符串包含两个以上的单词,则上述内容不起作用。如果一个字符串有两个以上的单词,比如

我希望结果是

但我上面的功能并没有做到这一点。我怎样才能改变我的功能,使它能够做到这一点?

0 投票
1 回答
1408 浏览

arrays - 如何扫描除一个索引之外的数组的每个元素?

我正在使用 Ruby 2.4。如何扫描数组的每个元素以查找除数组中一个索引之外的条件?我试过这个

但出现以下错误:

但显然我在网上读到的关于“除外”的内容被大大夸大了。

0 投票
1 回答
344 浏览

ruby-on-rails - 在 Capistrano 部署期间使用 Rails 5、Ruby 2.4 和 Capistrano 3 发送电子邮件

具体来说,Capistrano 3.7.2、Rails 5.0.2 和 Ruby 2.4.0。我得到的错误发生在Execute load:defaults

我即将开始将我的 Rails 4 应用程序升级到 Rails 5,并决定做一个小型测试应用程序以确保我所有的 gems 都能正常工作。一切都很好,除了我自 Rails 2 以来一直在使用 Capistrano 部署期间发送电子邮件的代码,当我尝试要求或加载邮件程序代码时会导致此错误;deploy.rb 的第 4 行是必需的。如果我将其注释掉并设置一个标志以不发送电子邮件,则部署工作完美。

邮件代码(基于 Mislav Marohnić 几年前发布的内容):

cap_mailer.rb:

我只能在网上找到非常相似的邮件设置(例如https://gist.github.com/johnthethird/955917)的引用,这些邮件设置是为旧版本的所有内容编写的。在 Capistrano 部署期间编写了几个用于发送邮件的 gem,但它们也有同样的问题,因为它们真的很旧(capistrano-notifiercapistrano_mailer)。

所以在这一点上我被卡住了。谷歌搜索NameError: uninitialized constant ActiveSupport::Rescuable建议也许这是一个配置问题,但我不知道在那里寻找什么。我的 Rails 安装中有 ActiveSupport::Rescuable;我仔细检查了一遍。任何想法,将不胜感激。

0 投票
2 回答
27 浏览

arrays - How do I get the results of a split returned in the order in which they occur in the split?

I'm using Ruby 2.4. I'm trying to split elements in an array. What I would like is to form to equivalent arrays with the results of my split. I would like the first part of the split to be the first array and the second part of teh split to be the second array. So I have

The problem is, the split is working, but the arrays are getting reversed. I want the ["mm", "nn", "nn"] to be the first element in the array. How do I rewrite things so that the arrays are returned properly -- that is, the first part of the split is in the first array and the second part of the split is in the second array?

0 投票
1 回答
129 浏览

ruby - 在 ruby​​ 细化块中组织一长段代码的最佳方法

当一个类被太多的连接方法细化时,我认为最好将它们提取到一个模块中。但是,在上面的示例中,当一个方法调用另一个方法时演示了一个问题(参见最后一条语句),它会产生以下错误。

在“start_end”中:“abcd”的未定义局部变量或方法“last”:String(NameError)

使用全局变量解决了类似的问题,这也适用于我的示例。但我正在寻找另一种更好的方法来组织被调用的方法,并避免全局性的事情。

如何建议更好的方法来组织这些方法?

0 投票
1 回答
245 浏览

ruby - Ruby 2.3 和 2.4 中的自定义异常

我想用 Ruby 2.3 和 2.4 中的自定义类来拯救一些代码。但与以前的版本不同(例如运行良好的 2.2),我遇到了一些麻烦。这里有一个例子:

给定这个类:

此代码被成功抢救:

这个也成功救了:

但不是这个:

引发此消息:

“foo”的未定义方法“bar”:字符串(NoMethodError)

我不知道为什么我的自定义异常类没有被处理。