问题标签 [ruby-2.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 投票
1 回答
1271 浏览

ruby-on-rails - 一个美国州的简称,全名(宝石国家和国家选择)

我为这些国家及其州(美国和加拿大)使用了 2 颗宝石:

假设我只是USA为了简单而使用并且我有 state California。我想获得它的简称,即 CA。我可以通过迭代所有状态以非常直接的方式做到这一点。但这可能有标准方法。

那么它存在吗?如果没有,有简单的方法吗?

0 投票
0 回答
221 浏览

form-for - Rails,form_for 正在更新所有模型记录的属性,而不仅仅是属于实例的属性

我为志愿者创建了一个视图,以注册特定的班次。我可以为班次编写视图和控制器,以便在单击 form_for 提交按钮时,将 current_user.id 推送到特定班次的 user_ids 属性上,该属性是一个数组。问题是它用当前用户的 id 更新了每个班次的 user_ids。我在这里想念什么?任何见解将不胜感激。谢谢。

志愿者.html.erb

移位.rb

班次.controller.rb

0 投票
2 回答
1129 浏览

ruby-on-rails - 新的 RSpec 运行但从未进入模型

我目前正在使用 rails 4.1.1 和 ruby​​ 2.1.1 运行 rspec,但是我遇到了一堆与 gems 相关的错误,甚至没有进入模型。

这是一个新版本的 rspec,它有一个 spec_helper.rb 和一个 rails_helper.rb

您需要规范中的 rails_helper.rb,该文件随后引用 spec_helper.rb

我没有对这两个帮助文件进行任何更改,并且刚刚开始我的项目。任何帮助/信息将不胜感激!

0 投票
1 回答
307 浏览

ruby - 救援异常以克服宝石错误?

我正在尝试使用 pusher-client gem 从网站接收 Pusher(接近实时数据)。但是,脚本往往会死掉很多。

如果我将 Pusher 数据发布到我的屏幕上,那么只要我愿意让它运行,客户端就会运行。但是,如果我将 Pusher 数据保存到文件中,或者使用 gearman gem 将数据传递给 Gearman 作业,或者使用 dalli gem 将数据放入 Memcache,那么我的客户端脚本就会崩溃。

我的服务器没有以任何方式超载。它有 8 个内核和 24 GB 的 RAM。通常,没有单个内核处于 100% 状态,并且在任何时候使用的内核都不超过 6 个,并且使用的 RAM 不超过 12 GB。

我当前的客户端脚本化身试图将数据传递给 Gearman 作业,我希望这将减轻数据保存的负担,并防止错过 Pusher 提供的任何更新,这通常会很快到来。这是脚本踢出的代表性错误:

我不想深入研究 pusher-client gem 并弄清楚为什么会发生这种情况。我只是想继续前进,所以我很想使用rescue Exception. 我正在保存 Pusher 为下游逻辑和操作提供的数据。数据正在快速移动,我可以确定该作业是否真的到达了 Gearman,可能会错过下一次更新或延迟它,或者我可以简单地将当前存储的数据标记为过时/无效并等待来自 Pusher 的下一次更新。我的偏好是将其标记为陈旧/无效并等待。

我读过“为什么在 Ruby 中 `rescue Exception => e` 是一种不好的风格? ”并且知道这rescue Exception是不好的做法。但是,我这样做并不是为了掩盖我的代码中的错误——我已经查看了在错误发生时传递给 Gearman 的工作负载,它们很好。

我在跑:

下面是一些将心跳工作负载发送到 Gearman 作业服务器的示例代码:

整个代码在失败前几分钟甚至几小时都可以正常运行。具体来说,每一行代码都在重复执行,除了之后的那些,在错误rescue之前没有失败。handle_job_created

那么,rescue Exception在这种情况下使用是否安全?是否有一些我可以使用的异常子集来代替我丢失的?我可能忽略了任何更好的建议或陷阱?

0 投票
1 回答
581 浏览

keyword-argument - 在关键字参数之前传递哈希时的Ruby 2.1.1 ArgumentError

在 Ruby 2.1.1 中,我定义了以下方法:

这在同一个对象中以另一种方法调用,privateToken如下所示:

但是,调用此对象会导致privateTokeninitialize

如果我将post方法更改为接受params作为关键字参数,则可以避免此错误:

有人可以解释为什么会这样吗?我没有在关键字参数文档中看到任何关于关键字散列扩展的提及。从我读到的参数顺序应该是:标准参数、默认参数、关键字参数。

0 投票
2 回答
7471 浏览

ruby-on-rails - Bundler 无法安装调试器 1.6.8

我曾尝试查看其中一些答案,但似乎没有任何效果。这是错误。

0 投票
2 回答
2306 浏览

ruby-on-rails-4 - Prawn gem undefined method `table' for #

我正在尝试使 PDF 表正常工作(遵循 railscast 示例),但我得到了错误undefined method表'#

这是 pdf 类库(遵循 railscast 的做法):

谁能帮帮我?

0 投票
1 回答
139 浏览

ruby-on-rails - Rails 3.0.20 应用程序上的 Ruby 升级(从 1.8.7 开始)导致时区异常

我正在升级一个大的、旧的、笨重的 Rails 应用程序的 Ruby(主要是这样我就不必在重新格式化的笔记本电脑上重新安装 REE),而且我被时区问题严重困扰。基本上,从数据库中提取日期时间并不能正确地将它们转换为本地时间:

新系统 - Ruby 2.1.2、Ubuntu 14.04

旧系统 - REE,Ubuntu 12.04

如您所见,我确保time_zone_aware_attributes已设置,已设置区域(我在 environment.rb 中设置),并且 ActiveRecordUTC 格式存储时间(如预期的那样)。我对此感到很困惑。有人有想法么?

更新

上面的测试失败了。I18n 的东西似乎完全坏了。

更新 2

我似乎已将问题隔离到 1.9.3 -> 2.1。我想使用 1.9.3 很好,我想我会在新服务器上运行它,直到升级 Rails。伤心。我仍然很想听听有关修复的任何建议。

0 投票
1 回答
217 浏览

ruby-on-rails - 在 rails_admin 自定义操作中重构 Ruby Proc 中的代码

一点背景:

我的应用程序toolspermission_levels. 有些User's 对某些人有授权,而对其tools他人则没有。管理面板是使用rails_admin gem构建的。

如果管理员正在编辑 aUser并且User有权访问tools管理员没有的权限,则这些工具不会显示在编辑视图中(这是需要的)。但是,当管理员更新 时UserUser会丢失与未显示的tools关联permission_levels

为了解决这个问题,我覆盖了#editRailsAdmin 中的操作。生成的代码有点乱,我想通过将相关代码提取到方法中来进行重构,但是该部分被包装在Proc.

如何将下面的代码提取到方法中?具体来说,register_instance_option :controller节。

0 投票
1 回答
2150 浏览

ruby-on-rails - 如何使用 RSpec 测试 rake 任务?

我有一个使用资产管道的 Ruby 2.1/Rails 3.2 应用程序。我们还使用了一个脆弱的 (alpha) gem,它有时会导致“rake assets:precompile”失败。我想编写一个 rspec 测试,以确保在我们提交代码之前这个 rake 任务总是通过。

我在 spec/asset_precompile_spec.rb 中写了一个测试,看起来像这样:

然后我在命令行上运行它使用

我得到的输出如下所示:

我已经看得很远了,我找不到任何运行“rake assets:precompile”的例子,它实际上在我的 RSpec 环境中工作。我尝试过显式加载 spec_helper.rb 文件,我尝试过明确要求“factory_girl”,但我找不到任何有效的东西。

有没有办法让测试运行这个 rake 任务在 RSpec 测试中运行?