jjzjj

ruby - Sinatra 请求 ["SOME_HEADER"] 不适用于 POST;文档错误?

Sinatra自述文件says:request["SOME_HEADER"]#valueofSOME_HEADERheader鉴于此应用:require'sinatra'post'/env'doenv['HTTP_X_FOO']endpost'/request'dorequest['X-Foo']endpost'/request_rack_http_format'dorequest['HTTP_X_FOO']end第一个规范通过;接下来的两个失败:describe"Sinatrashouldplacetheheaderin"dobefore(:all)doheader'X-Foo','

ruby - RuntimeError: :json 未在 Faraday::Request 上注册

我是ruby​​的新手,我正在尝试执行规范,但收到此错误:RuntimeError:         :jsonisnotregisteredonFaraday::Request我正在尝试使用这个gem:https://github.com/Chicago/windyMacOSX10.7.4Ruby1.9.3,使用RVM 最佳答案 我刚刚在升级Faraday时遇到了这个问题。json请求中间件在0.8中从Faraday中移除。它现在位于faraday_middlewaregem中。您应该geminstallfaraday_middl

Ruby HTTP 获取参数

如何通过ruby​​发送带参数的HTTPGET请求?我尝试了很多例子,但都失败了。 最佳答案 我知道这篇文章很旧,但是为了那些由谷歌带到这里的人,有一种更简单的方法可以以URL安全的方式对您的参数进行编码。我不确定为什么我没有在其他地方看到这个,因为该方法记录在Net::HTTP页面上。我已经看到Arsen7描述的方法也是其他几个问题的公认答案。在Net::HTTP中提到文档是URI.encode_www_form(params):#Letssaywehaveapathandparamsthatlooklikethis:path="

ruby - 如何使用 Net::HTTP 只读取正文的 x 个字节?

在读取网页正文时,Ruby的Net::HTTP方法似乎是全有或全无。例如,我如何读取正文的前100个字节?如果请求的文件不可用,我正在尝试从内容服务器读取内容服务器,该内容服务器会在响应正文中返回一条简短的错误消息。我需要阅读足够多的正文以确定文件是否存在。文件很大,所以我不想让整个body只是为了检查文件是否可用。 最佳答案 这是一个旧线程,但根据我的研究,如何在Ruby中通过HTTP只读取文件的一部分的问题仍然是一个大部分没有答案的问题。这是我通过猴子修补Net::HTTP得到的一个解决方案:require'net/http'#

ruby-on-rails - Ruby VCR gem 不断记录相同的请求

在我的cucumber支持目录中,我在vcr.rb中有以下内容:require'vcr'VCR.configuredo|c|c.cassette_library_dir='fixtures/vcr_cassettes'c.hook_into:webmockc.ignore_localhost=truec.default_cassette_options={record::new_episodes}end我正在对调用GoogleMapsAPI的城市名称进行地理编码。我正在尝试记录并stub这些请求,但它一直将相同的请求记录到同一个yml文件:-request:method:geturi:

ruby-on-rails - 助手设计 : could not find the `Warden::Proxy` instance on request environment

我尝试将Devise用于我的Rails应用程序。我可以注册并登录,但是当我转到其他页面“构建”时,出现以下错误:Devise::MissingWardeninHome#showDevisecouldnotfindtheWarden::Proxyinstanceonyourrequestenvironment.MakesurethatyourapplicationisloadingDeviseandWardenasexpectedandthattheWarden::Managermiddlewareispresentinyourmiddlewarestack.Ifyouareseeing

ruby-on-rails - Rails - 如何获取访问者的IP地址?

我需要将访问者的IP地址存储到我们的数据库中,这是我尝试这样做的方式:@ip=request.remote_ip@ip=request.env['REMOTE_ADDR']但在这两种情况下,@ip变量都存储了值127.0.0.1,即使我将应用程序部署到AmazonEC2实例也是如此。当我检查http://www.whatismyip.com/时,它将我的IP显示为109.175.XXX.X。那么为什么ruby变量总是显示127.0.0.1地址呢?如何获取真实IP?编辑:这是以下内容的输出:request.env['HTTP_X_FORWARDED_FOR']=>request.remo

ruby-on-rails - 在 Rails 记录器中包含参数/请求信息?

我正尝试在我的Rails日志中获取更多信息,特别是请求的URI或当前参数(如果可用)(我很感激它们不会总是如此)。但是我似乎做不到。这是我到目前为止所做的:#config/environments/production.rbconfig.logger=Logger.new(config.log_path)config.log_level=:errorconfig.logger.level=Logger::ERROR#config/environment.rbclassLoggerdefformat_message(level,time,progname,msg)"***********

#<Hash :0x2954fe8> 的 Ruby 未定义方法 `bytesize'

我有以下Ruby代码,用于沙盒模式下的跟踪网站:require"net/http"require"net/https"require"uri"xml=XMLuri=URI('https://cig.dhl.de/services/sandbox/rest/sendungsverfolgung')nhttp=Net::HTTP.new(uri.host,uri.port)nhttp.use_ssl=truenhttp.verify_mode=OpenSSL::SSL::VERIFY_NONErequest=Net::HTTP::Get.new(uri)request.basic_auth

ruby-on-rails - rails : switch connection on each request but keep a connection pool

在我们的Rails应用程序中,我们需要根据请求的子域使用不同的数据库(每个国家/地区使用不同的数据库)。现在我们正在做类似于thisquestion中推荐的事情.也就是说,在每个请求上调用ActiveRecord::Base.establish_connection。但是itseemsActiveRecord::Base.establish_connection删除当前连接池并在每次调用时建立一个新连接。我做了这个快速基准测试,看看每次调用establish_connection和已经建立连接之间是否有任何显着差异:require'benchmark/ips'$config=Rails