问题标签 [ruby-2.3]

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 投票
0 回答
457 浏览

ruby-on-rails - 带有 Ruby 2.3.3 和 Rails 5 的 Ubuntu 上的 Net::OpenTimeout

我正在将我们的 Rails 应用程序从 Rails 4.2 升级到 5 以及从 Ruby 2.2.3 升级到 2.3.3。我们使用的 delay_job 进程之一缓存来自网络上其他地方的图像。缓存的图像是通过 s3 支持的回形针存储的,但似乎是读取间歇性失败——每个作业运行缓存大约 40-60 个图像,并进行适当的节流,这样缓存就不会下沉服务器,大约 80总作业针对数据的各个段运行 - 每个作业启动,缓存一些图像,然后在下面的堆栈跟踪中爆炸。

注意:

  • 这发生在我们运行 Ubuntu 12.04.5 LTS 的登台服务器上;在 Mac OS X 上的开发中,这不会发生在我身上
  • 根据此处有关 Net:OpenTimeout 错误的其他讨论,我已尝试在暂存服务器上禁用 IPv6;这似乎可以防止错误,但似乎是一个kludge
  • 在服务器上运行 Ruby 2.2.3 和 Rails 4.2.7 并没有发生这种情况,但在 Ruby 2.3.3 和 Rails 5.0.1 中运行;除了那些更新(并在发生错误后更改 IPv6 设置),我没有对服务器配置进行任何更改
  • 使用相同代码、Rails 5.0.1 和 Ruby 2.2.3 进行的初始测试表明,该问题可能仅在 Ruby 2.3 下发生(此时很难说,它成功运行了 80 个作业中的 10 个)

任何建议表示赞赏。堆栈跟踪指向第 1041 行,这是 open(URI.parse...) 行,而不是 file.write 行,所以我认为将图像缓存起来是一个问题,而不是将其写入 s3。

和堆栈跟踪:

0 投票
2 回答
396 浏览

ruby - 在 Ruby 中创建一些可读的单词

我正在尝试在包含大写、小写、数字和特殊字符的 ruby​​ 中创建一些可读的单词,例如:

要在 ruby​​ 中创建随机字符串,您可以执行以下操作:

有没有办法确保随机字符串有点可读?包含常数、元音等。具有特殊字符和至少一个数字而不使用外部宝石?

0 投票
2 回答
135 浏览

ruby - 用任何不是字母的东西分割数组

我有一个类将检查用户环境以了解他们是否已python安装,这些类的目的是检查用户是否安装了多个版本的 python 并且不默认为三个:

现在这有效,但它只适用于 Windows 和少数 Linux OS,显然Parrot不是其中之一。有没有办法#split()通过任何不是字母的东西来设置环境变量?例如:

Windows 环境变量:C:\Python27\;C:\Python27\Scripts;C:\ProgramData\Oracle\Java\javapath Parrot OS 环境变量:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

请注意变量是如何被分号(;)或冒号(:)分割的,有没有一种方法可以在 ruby​​ 中使用该#split()函数并被任何非字母数字字符或数字分割?或者有没有更好的方法来确保用户python 2.7.x在他们的环境变量中有?

0 投票
3 回答
1014 浏览

ruby-on-rails - Ruby 2.3.3:奇怪的 Tempfile.new([name, prefix]) basename 转换为哈希

为我们的 Rails 3.2.22.2 应用程序测试升级到 Ruby 2.3.3,并得到一个奇怪的情况,我们将数组作为第一个参数传递给Tempfile.new,但它最终以哈希的形式出现。

我已经修补tempfile.rb以输出basename传入的参数。

irb会话(非 Rails)中,一切都很好:

在一个rails console会话中:

必须是宝石或其他东西,但我一生都无法弄清楚为什么会发生这种情况,或者在哪里或在什么地方改变了行为。

关于如何调试的任何想法或建议?

0 投票
0 回答
311 浏览

imagemagick - Paperclip 5.1.0 - Rails 5 - 图片上传后出现丢失

如果我尝试上传图片信息出现:

然后显示“失踪”

在 Git Bash 中,出现:

此外,当我安装回形针时出现以下消息:

执行安装回形针的操作:

使用的版本:

进行了测试,但不是决定性的:

  • 在 app> model> content.rb 中添加:

    :default_url => "/images/:style/missing.png"

  • 在 config/environments/development.rb 中添加:

    Paperclip.options[:command_path] = "/usr/local/bin/"

    Paperclip.options [: command_path] = 'C:\Program Files (x86)\GnuWin32\bin

  • 添加在 - 添加在 app> model> content.rb 中:

    Paperclip.options[:command_path] = 'C:\Program Files (x86)\GnuWin32\bin; C:\程序文件\ImageMagick-7.0.4-Q16'

    Paperclip.options [:swallow_stderr] = false

0 投票
3 回答
60 浏览

ruby - 为什么这个 switch 语句不起作用?

我有这个代码

出于某种奇怪的原因,不是将 cluck cluck 放在第四行或将 cluck 放在第 24 行,它只是放置 1 到 100 的列表。我无法弄清楚 switch 语句有什么问题。使用逗号或 && 时的第一个也不会改变任何东西(我不相信它应该这样做)。

0 投票
1 回答
266 浏览

ruby - Ruby 2.3 编写 UTF-16LE gzip 文件

我有这段代码,使用 Ruby 2.3.1 运行:

并返回 [无效编码]

如何以将编码保持为 UTF-16LE 的方式保存文件?

0 投票
1 回答
244 浏览

ruby - find whether a zipped file is text or binary without unzipping it

I'm creating a ruby script which goes through several zip files and validates the content of any xml files within. To optimise my script, I'm using the ruby-zip gem to open the zip files without extracting them.

My initial thought was to use filemagic to determine the MIME-type of the files, but the filemagic gem takes a file path and all I have are these Entry and InputStream classes which are unique to ruby-zip.

Is there a good way to determine the filetype without extracting? Ultimately I need to identify xml files, but I can get away with identifying plain-text files and using a regex to look for the

0 投票
1 回答
239 浏览

ruby-on-rails - rails dot notation 不再适用于访问哈希值给出 NoMethodError

我正在rails 5使用ruby 2.3.3. 今天我添加了一个gem,有版本冲突所以我把gem拿出来了。从那时起,点符号等hash.test不再起作用。它给NoMethodError: private method test called for {:test=>"value"}:Hash

如何再次使用点符号访问哈希?

0 投票
1 回答
1124 浏览

sql - Rails:查询 nil has_one 关联

我有两个模型:PatientCodeStatus.

CodeStatus belongs_toPatient 和 Patient has_oneCodeStatus

我正在尝试查询所有患者在哪里patient.code_status是零。我惊讶地发现Patient.where(code_status: nil)投掷不起作用:column patients.patient_id does not exist

我已经找到了这个(相当老的)答案,但我很难相信查询这个问题的最佳方法是通过一长串原始 SQL。我认为 rails 会像许多其他协会一样包含这个助手。有谁知道一个不那么冗长的解决方案?提前致谢。