问题标签 [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.
ruby-on-rails - 一个美国州的简称,全名(宝石国家和国家选择)
我为这些国家及其州(美国和加拿大)使用了 2 颗宝石:
假设我只是USA
为了简单而使用并且我有 state California
。我想获得它的简称,即 CA。我可以通过迭代所有状态以非常直接的方式做到这一点。但这可能有标准方法。
那么它存在吗?如果没有,有简单的方法吗?
form-for - Rails,form_for 正在更新所有模型记录的属性,而不仅仅是属于实例的属性
我为志愿者创建了一个视图,以注册特定的班次。我可以为班次编写视图和控制器,以便在单击 form_for 提交按钮时,将 current_user.id 推送到特定班次的 user_ids 属性上,该属性是一个数组。问题是它用当前用户的 id 更新了每个班次的 user_ids。我在这里想念什么?任何见解将不胜感激。谢谢。
志愿者.html.erb
移位.rb
班次.controller.rb
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
我没有对这两个帮助文件进行任何更改,并且刚刚开始我的项目。任何帮助/信息将不胜感激!
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
在这种情况下使用是否安全?是否有一些我可以使用的异常子集来代替我丢失的?我可能忽略了任何更好的建议或陷阱?
keyword-argument - 在关键字参数之前传递哈希时的Ruby 2.1.1 ArgumentError
在 Ruby 2.1.1 中,我定义了以下方法:
这在同一个对象中以另一种方法调用,privateToken
如下所示:
但是,调用此对象会导致privateToken
:initialize
如果我将post
方法更改为接受params
作为关键字参数,则可以避免此错误:
有人可以解释为什么会这样吗?我没有在关键字参数文档中看到任何关于关键字散列扩展的提及。从我读到的参数顺序应该是:标准参数、默认参数、关键字参数。
ruby-on-rails - Bundler 无法安装调试器 1.6.8
我曾尝试查看其中一些答案,但似乎没有任何效果。这是错误。
ruby-on-rails-4 - Prawn gem undefined method `table' for #
我正在尝试使 PDF 表正常工作(遵循 railscast 示例),但我得到了错误undefined method
表'#
这是 pdf 类库(遵循 railscast 的做法):
谁能帮帮我?
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 中设置),并且 ActiveRecord以UTC 格式存储时间(如预期的那样)。我对此感到很困惑。有人有想法么?
更新
上面的测试也失败了。I18n 的东西似乎完全坏了。
更新 2
我似乎已将问题隔离到 1.9.3 -> 2.1。我想使用 1.9.3 很好,我想我会在新服务器上运行它,直到升级 Rails。伤心。我仍然很想听听有关修复的任何建议。
ruby-on-rails - 在 rails_admin 自定义操作中重构 Ruby Proc 中的代码
一点背景:
我的应用程序tools
有permission_levels
. 有些User
's 对某些人有授权,而对其tools
他人则没有。管理面板是使用rails_admin gem构建的。
如果管理员正在编辑 aUser
并且User
有权访问tools
管理员没有的权限,则这些工具不会显示在编辑视图中(这是需要的)。但是,当管理员更新 时User
,User
会丢失与未显示的tools
关联permission_levels
。
为了解决这个问题,我覆盖了#edit
RailsAdmin 中的操作。生成的代码有点乱,我想通过将相关代码提取到方法中来进行重构,但是该部分被包装在Proc
.
如何将下面的代码提取到方法中?具体来说,register_instance_option :controller
节。
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 测试中运行?