问题标签 [ruby-2.3.1]

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 投票
3 回答
5392 浏览

ruby - rbenv 无法安装 ruby​​ 2.2.5 和 2.3.1

我跑brew updatebrew upgrade rbenv ruby-build。仅供参考:我昨天将 xcode 更新到 8.1 版。

我检查了可用版本,rbenv install -l.

然后我尝试通过安装ruby2.2.5 rbenv install 2.2.5,然后我得到以下错误。

我试过 2.3.1 但我得到了同样的错误。我该如何解决这个问题?

0 投票
2 回答
1824 浏览

ruby-on-rails - 如何使用 Ruby on Rails 处理事务中的多个异常以导入文本文件

我的红宝石环境是:Ruby 2.3.1Rails 5.0.0.1.

我正在尝试导入一个文本文件以导入大量购买项目。

采购文件示例:

数据.txt

客户\t描述\t单价\t数量\t地址\t供应公司\n Athos Matthew\tChocolate\t10\t5\t一些地址。\t巧克力公司\n

列由制表符 (\t) 分隔,最后有一个输入 (\n)。

我有所有属性不能为空的购买类。属性是:

为了导入文件,我决定创建一个 PurchaseImporter 类来完成这项工作并保持代码更简洁。

我的问题是交易部分:

我的问题是我想从 Product、SupplyCompany 和 Purchase 中捕获所有可能在此事务中发生的错误。

这是发生的顺序,没有不必要的代码来解释它。

我需要将此错误信息打印到屏幕中的这 3 个类,但是使用我的代码,我只能捕获产品生成的第一个异常错误。如果 SupplyCompany 或 Purchase 发生错误,我会丢失这些错误消息。

导入文件时是否有其他方法可以导入和记录错误消息?

0 投票
1 回答
207 浏览

ruby-on-rails - Ruby on Rails 中损坏的用户注册表单

我在 Ruby on Rails 中的用户注册表单有问题。我之前只需要一个用户名、电子邮件和密码就可以使用它。但是,当我尝试为名字、姓氏和邮政编码添加字段时,它停止将任何数据插入数据库,只是重定向回注册表单。

我以正确的方式生成迁移和迁移数据库 - 表单仍然无法正常工作。

然后我完全删除了数据库并使用包含的所有字段重新创建它,但它仍然无法工作。数据库是使用正确的字段正确生成的,我不确定断开连接的位置。

我正在使用红宝石 2.3.1。

用户控制器:

用户型号:

用户/新表单:

创建用户迁移:

从日志:

非常感谢您的帮助。

0 投票
1 回答
107 浏览

ruby-on-rails - Payola 工作人员因“关系“payola_subscriptions”不存在而失败”

更新 我已经为修复这个问题的人发布了 30 美元的赏金。

我正在使用 Checkout 按钮并将结果发布到 payola/subscribe/PLAN_CLASS/PLAN_ID.json

这是我的initializers/payola.rb

payola_subscription 正在 payola_subscriptions 表中创建,状态为待处理,但是,负责通知 Stripe 的作业失败并显示以下跟踪:

更新二

正如建议的那样,我现在正在从 gem 内部登录。这是process_subscription.rb现在的样子:

这是输出:

所以,基本上没有Subscription条目。

有趣的是,这是我从 rails 的控制台得到的:

我开始认为这是工人对这些模型一无所知的问题。

更新三

结果表明 resque 没有看到我的任何 postgresql 表,尽管我在以下位置运行它lib/tasks/resque.rake

它与Payola无关。

0 投票
1 回答
29 浏览

ruby-on-rails - 捆绑打开 disqus_api 不访问真实源代码?

我正在尝试将 gem https://github.com/toptal/disqus_api用于此项目,但很难让它接受我的身份验证详细信息。这可能最终成为一个单独的问题,但现在我想探索源代码并进行一些手动调试。

问题是,当我bundle open disqus_api. 它似乎正在查找文件,但是当我对它们进行任何更改(例如,使用调试器中断)时,它并没有被拾取(并且当它引发错误,因此应该向下移动一行时,行号保持不变) .

也就是说,我可能没有完全走错地方的一个迹象是,当我暂时删除 gem 的整个 lib 目录时,虽然它仍然加载核心 DisqusApi 类,但该类上的 pry 'show-source' 方法现在输出Error: Couldn't locate a definition for DisqusApi!.

(编辑添加):

具体来说,就是这个文件的第 70 行

所以在我编辑它之后,我们有:

但它会犯这样的错误: DisqusApi::InvalidApiRequestError: {"code"=>5, "response"=>"Invalid API key"} from /Users/sashacooper/.rvm/gems/ruby-2.3.1/gems/disqus_api-0.0.5/lib/disqus_api/api.rb:70:in在 perform_request 中阻塞'`

这是怎么回事?

0 投票
2 回答
537 浏览

ruby - 如何使用 Nokgiri 或 Mechanize 确认 JavaScript 弹出窗口

我正在运行一个将在我的本地主机上打开的脚本。我的本地服务器是一个易受攻击的 Web 应用程序测试套件。

我正在尝试从 JavaScript 警报中确认 XSS 弹出窗口。例如:

我需要使用 Mechanize 或 Nokogiri 确认弹出窗口是否发生。是否可以通过 Nokogiri 或 Mechanize 确认弹出窗口是否存在?

例如:

0 投票
1 回答
470 浏览

ruby-on-rails - Google::Apis::ServerError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A

我无法弄清楚这里的问题是什么。我有一个 Rails / ActiveAdmin 应用程序,我为其设置了一个任务。该任务被包裹在一个 Rails 任务中。

上传.rb

上面的代码将在运行时上传一个简单的测试文件就好了ruby upload.rb

但是,当我将其包装到 rake 任务中并运行rake google_test时,它会返回以下错误

它所指的线也是new_file = drive.create_file(new_file, upload_source: file_contents, content_type: 'text/csv')

任何人都知道为什么这在作为辅助脚本运行时可以正常工作,但是一旦作为 rake 任务添加到项目中,它会失败说服务器不接受 SSL 版本?我什至尝试过指定TLSv1_2,但它仍然会出错returned=5

当前安装的 openssl 版本是 1.0.1j,带有 Ruby 2.3.1 和 Rails 5.0.0.1,在 Windows 平台上

0 投票
1 回答
545 浏览

ruby-on-rails - Ruby如何将Namespace的模块功能委托给Namespace::Base内部类

我面临选择 #1 的问题:

与 #2 相比:

我最终选择了选项 #2,因为我Abstract感觉更像是一个命名空间,我最终可以添加其他的东西,比如

但是我觉得打电话Abstract::Base.some_class_method有点奇怪。可以添加模块功能委托吗?例如,如果我Base是 ActiveRecord 或 Mongoid 模型(所以 Foo 和 Bar 就像 STI),我希望能够使用

Abstract.where(...)代替Abstract::Base.where(...)

是否可以将模块功能委托.where给常量/类Base

就像是

还是有不同/更好的方法来做到这一点?

0 投票
1 回答
138 浏览

ruby - 如何捕获命令的输出而不显示在标准输出中

如何捕获命令的输出并检查它所说的内容而不显示在标准输出中的命令?例如:

如何捕获此输出以检查命令是否显示up-to date、发生错误或成功更新?有没有办法将输出写入文件而不是控制台?


更新答案:

输出将始终为:

即使版本与起源相同。如果可能的话,我想做的是将stdout命令保存到文件中并从该文件中读取以发现程序是否已更新。我认为这将是最简单的方法。

0 投票
2 回答
789 浏览

ruby - NilCheck 修复了安全导航运算符 (&.)

类上的这个简单方法只是status使用安全导航运算符运行该方法。

但是臭味报告这个警告:

如何正确编写这样的方法来避免 Nil Check?

我还从thoughtbot 验证了这篇文章,但对于安全导航操作员来说似乎“太多”了。

红宝石 2.3.1