草庐IT

ruby - 从 Rails 3.0 升级到 Rails 3.2(Ruby 1.9.3 + Passenger)后出现巨大的内存泄漏/膨胀

上周我们将一个在Rails3.0.1上运行的小项目升级到了Rails3.2.2。升级后不久,我们发现偶尔,一天2-3次,我们会看到一个巨大的PhusionPassenger进程(1-5GB)。我们正在运行PhusionPassenger3.0.11和Ruby1.9.3-p0。我们已经尝试了不同的Ruby版本(1.9.2-p290和1.9.3-p125)但没有成功。之后,我们尝试使用Oink来跟踪我们的内存使用情况.不幸的是,Oink没有显示内存膨胀的原因——大型进程似乎不再写入日志文件。当我们降级回Rails3.0.1时,问题就消失了。有没有人有类似的问题?我们确实检查了我们的代码是否

ruby-on-rails - wkhtmltopdf 试图从 http 而不是文件加载

这是一个奇怪的小问题,导致我在SO上发布了我的第一个问题。作为Rails应用程序的一部分,我正在使用wkhtmltopdf将HTML文档转换为PDF。为此,我将Rails网页呈现为临时目录中的静态HTML文件,将静态页眉、页脚和图像复制到同一临时目录,然后使用“系统”执行wkhtmltopdf。这在开发和测试环境中非常有效。在我的暂存环境中,它没有。起初我怀疑权限,但该过程的前几个部分(创建HTML静态文件并将它们复制到目录)正在运行。我可以从该临时目录中的命令行运行wkhtmltopdf并获得预期的结果。最后,我在暂存环境中通过Rails控制台通过“系统”和反引号运行wkhtmlto

ruby - 从 Amazon S3 流式传输动态 zip

我正在寻找一种从AmazonS3动态流式下载zip文件的方法。应用程序托管在EC2上,文件存储在S3上。需要让用户能够从一组文件中进行选择,然后将这些文件打包并下载给他们。听说过一些可能可行的Actionscript库(aszip和fzip),或者可以在Ruby或什至PHP中执行此操作。文件不需要任何压缩,zip只是用于将文件捆绑到一个下载中.... 最佳答案 我使用NginxZipModule流式传输本地文件,但可以选择从远程位置流式传输。否则,您可以将它与VFS安装的S3存储一起用作本地文件系统。支持seek-断点续传和加速下载

ruby - 如何从 Ruby 启动和停止 shell 守护进程

我如何启动一个shell守护进程,然后在同一个Ruby脚本中停止它?更具体地说,我希望我的Ruby脚本能够:使用shell命令启动服务器守护进程(railsserver|shotgun|etc...)。在服务器运行时做一些事情。让服务器退出。ruby1.8/1.9和unix/windows支持的所有拥抱解决方案都是首选。(我读过fork例如在Windows上不起作用)。 最佳答案 我强烈推荐RubyDaemonsgem.我认为它具有您需要的所有功能。查看其自述文件的第3部分,并特别注意Daemons.call允许守护进程任意代码的方

ruby - 从 1.9.3 开始,如何在 Ruby 中获取 YAML 以将 ASCII-8Bit 字符串转储为字符串?

这就是问题所在:我可能有UTF-8字符串,也可能有US-ASCII字符串。无论编码如何,我都希望YAML.dump(str)实际转储String对象,而不是像示例所示的这些无用的!binary对象。是否有标志或我没有看到的东西强制YAML.dump()做正确的事情?Ruby1.9.1示例YAML::VERSION#"0.60"a="foo"#=>"foo"a.force_encoding("BINARY")#=>"foo"YAML.dump(a)#=>"---foo\n"Ruby1.9.3示例YAML::VERSION#"1.2.2"a="foo"#=>"foo"a.force_enc

ruby-on-rails - 如何从查询字符串中删除空值参数

我有一个搜索表单,有很多选项,提交到带有Get请求的路由。网址是这样的:http://localhost:3000/restaurants/search?utf8=%E2%9C%93&city=&cuisine=&number_of_people=&query=hello有更多的参数。我想让它更干净一些,比如删除所有空白的参数。像这样:(基本上删除所有空白的参数)http://localhost:3000/restaurants/search?query=hello如何做到这一点?一种方法是使用CGI::parse("foo=bar&bar=foo&hello=hi")给你{"foo"

ruby - 如何(终端)从 ruby​​ 脚本进入文件夹

我想知道是否可以从我执行ruby​​脚本的位置更改当前终端目录。例如,如果我在终端中从$HOME执行脚本,我想在脚本末尾进入$HOME/mydir.我已经尝试了几件事,但我总是在启动脚本的同一目录中找到。我尝试过的事情:Dir.chdir(mydir)%[cdmydir]它们实际上会改变目录,但只是在脚本执行的线程中。当脚本结束时,我在终端中的当前位置与启动脚本之前的位置相同。我在SO中发现了类似的东西,但它是Python-relatedreact似乎是否定的。你可能会问为什么?我目前正在参与一个命令行应用程序(使用gli),作为起点,它需要一个项目文件夹。所以我的第一个命令是这样的:

ruby-on-rails - Arel:从函数中选择

考虑以下查询:SELECTDATE_TRUNC('hour',date_range)FROMGENERATE_SERIES(:start_date,:end_date,:interval)asdate_range是否可以将GENERATE_SERIES(...)用作表(数据源)?理想情况下,它看起来像这样:t=series(start,end,as:'date_range')dt=Arel::Nodes::NamedFunction.new('DATE_TRUNC',['hour',t[:date_range]])t.project(dt)更新1。为什么我需要GENERATE_SERI

ruby - 如何从 Ruby 程序发送邮件?

我想从Ruby应用程序发送电子邮件。核心语言中是否有调用来执行此操作,或者是否有我应该使用的库?执行此操作的最佳方法是什么? 最佳答案 如果你不想使用ActionMailer你可以使用Net::SMTP(实际发送)连同tmail用于轻松创建电子邮件(包含多个部分等)。 关于ruby-如何从Ruby程序发送邮件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/58478/

ruby - 从 Ruby 文件中读取变量

有没有办法读入环境变量文件?在bash中我有一个可以使用的文件env.sh环境.shfoo="bar"bash文件set-asourceenv.sh这将允许我像在ruby​​脚本中声明它一样使用foo。还有没有办法确保这个文件是不可读的,这样密码就可以存储在这个文件中? 最佳答案 听起来您应该为用户/管理员提供一个文件示例以针对他们的个人环境进行修改,然后从中填充环境,同时或许避免在存储库中包含敏感信息的文件。注意:每个文件的安全性将由文件所在的位置以及您的操作系统和服务器软件来解决。如果是这种情况,那么您可以提供一个文件,其中包含