草庐IT

ruby-on-rails - Rails ActionController::BadRequest 在生产服务器上导致 500 服务器错误

我们有一个土耳其语网站,一些旧链接被一些搜索引擎抓取。这些链接似乎格式不正确或无法处理,因此导致ActionController::BadRequest错误。在本地机器上developmentenv这会导致返回带有ActionController::BadRequest的Rails错误页面.但是在服务器上我们得到一个500servererror.此问题在其他几个页面上进行了讨论,例如here.但所有解决方案都无济于事。在这两种情况下,我们都希望重定向到pagenotfound-页面。我已经尝试过rescue_fromActionController::BadRequest和rescue

ruby-on-rails - 将 CSV 流从 Ruby 上传到 S3

我正在处理潜在的巨大CSV文件,我想从我的Rails应用程序导出这些文件,并且由于它在Heroku上运行,我的想法是在生成这些CSV文件时将它们直接流式传输到S3。现在,我遇到了一个问题,因为Aws::S3需要一个文件才能执行上传,而在我的Rails应用程序中我想做类似的事情:S3.bucket('my-bucket').object('my-csv')我怎样才能做到这一点? 最佳答案 您可以使用s3分段上传,允许通过将大对象拆分为多个block来上传。https://docs.aws.amazon.com/AmazonS3/lat

ruby-on-rails - 在 Github 上 fork Ruby/Rails gem 的正确协议(protocol)/礼仪是什么,可以作为持续的并行 fork 进行维护?

最近我使用了一个由单个开发人员创建的不错的gem,它托管在Github上。在我的工作中,我不得不对它进行一些实质性的修改,添加一些改进。有些是特定于项目的,有些是特定于gem的,还有一些是独立的改进。对于特定于gem的改进(例如,错误修复),我fork了存储库,应用了修复,并提出了拉取请求。然后,然而,我注意到独立的改进有点属于原始gem的并行、持续的分支类别。更清楚地说,你以前见过它;我重写了原始gem的View以使用TwitterBootstrap框架。因此,我也将它推送到了Github,但是,当然,我没有提出拉取请求——相反,我更新了README以解释不同之处,并感谢gem的原作

ruby - 如何将数据通过管道传输到通过标准输入上的 Net::SSH 启动的进程?

我正在本地机器上生成数据源,我想通过Net::SSH将其传输到远程进程。有点像echofoosball|sed's/foo/bar/g'只是echofoosball部分将是本地计算机上的数据馈送。我不要找的是:data="foosball"ssh.exec!("echo#{data}|sed's/foo/bar/g'")我真的想要实时将数据流传输到流程中;) 最佳答案 好吧,我明白了:#!/usr/bin/envrubyrequire'rubygems'require'net/ssh'res=""c=Net::SSH.start("

ruby - 有没有人想出一种方法来在多个浏览器/网络驱动程序上运行相同的 cucumber 场景?

我正在使用Cucumber+capybara进行一些网络自动化测试。我希望能够连接我自己的标签(类似于场景之前的@all_browsers)并让它针对我设置的网络驱动程序列表运行(celerity,firefox上的selenium,ie和chrome)。我不想在前面用4个不同的标签写4次不同的场景。我已经研究过尝试使用我通过以下方式注册的新驱动程序来执行此操作:Capybara.register_driver:all_browsersdo|app|#Whatwouldevenworkinhere?Idon'tthinkanythingwill.end然后跟进:Before('@all

ruby-on-rails - Sunspot Rails 无法在 Mac OS X 上加载

我不确定发生了什么变化,但solr无法在我的机器上启动。我收到以下错误...❯bundleexecrakesunspot:solr:run2017-04-0608:47:48.624:INFO:oejs.Server:jetty-8.1.8.v201211062017-04-0608:47:48.646:INFO:oejdp.ScanningAppProvider:Deploymentmonitor/Users/noahc/.rvm/gems/ruby-2.3.3@mbcapp/gems/sunspot_solr-2.2.0/solr/contextsatinterval02017-0

ruby - Ruby "==="运算符在范围上的含义

我最近开始学习Ruby,并且正在阅读以下内容RubyManual.在本手册中,他们说了以下内容(关于范围):Afinaluseoftheversatilerangeisasanintervaltest:seeingifsomevaluefallswithintheintervalrepresentedbytherange.Thisisdoneusing===,thecaseequalityoperator.通过这些例子:(1..10)===5»正确(1..10)===15»错误(1..10)===3.14159»正确('a'..'j')==='c'»真('a'..'j')==='z'»

ruby-on-rails - 如何在 Stack Overflow 或 Quora 上创建标签系统

我想创建一个标签系统,就像在StackOverflow或Quora上看到的那样。它将是自己的模型,我打算使用thisautocompleteplugin帮助用户找到标签。我有几个问题:我希望标签完全由用户生成。如果用户通过键入新标签并按下“添加”按钮来输入新标签,则该标签将添加到数据库中,但如果用户键入现有标签,则会使用该标签。我正在考虑使用这样的代码:defcreate@video.tags=find_or_create_by_name(@video.tags.name)end我走在正确的rails上吗?我想在StackOverflow或Quora上实现类似的功能,这样当您单击建议列

ruby - Splat 在哈希上

散列上的splat将其转换为数组。[*{foo::bar}]#=>[[:foo,:bar]]这里是否存在某种隐藏机制(例如隐式类转换),或者它是一种内置的原始特征?除了数组,nil和hash是唯一在Ruby1.9下随splat运算符消失/改变的东西吗? 最佳答案 splat将尝试将对象显式转换为数组。为此,它将发送to_a并期望得到一个Array。classFoodefto_a[1,2,3]endenda,b,c=*Foo.newa#=>1如果对象不响应to_a,则没有效果,例如[*42]==[42]许多内置类实现to_a。特别是:

ruby-on-rails - 在 Heroku 上使用 Prawn

我们目前正在开发托管在Heroku上的Rails应用程序。我们正在尝试生成PDF并将其推送给用户下载。我们使用Prawn来处理PDF生成。我们目前生成PDF的代码是:Prawn::Document.generate@name[0]+".pdf"do后面是我们所有的代码生成的文件。不幸的是,这会将文档保存到磁盘,这对于托管在Heroku上的应用程序是不可能的(据我所知)。然后我们将它推送给用户使用send_file"#{Rails.root}/"+@name[0]+".pdf",:type=>'application/pdf',:filename=>@name[0]+".pdf"有没有什