Tag: 获取

Ruby on Rails 3:如何分别检索POST和GET参数?

我知道你可以使用params获取参数,但问题是它合并了所有参数,无论它们是通过GET还是POST发送的: 如果您通过GET发送请求,没问题,参数只能在URL中挤压。 但是如果你发送一个像/blabla?foo=bar&foo2=bar2这样的URL的POST请求,有没有办法告诉通过URL发送的变量和通过实际POST方法发送的变量之间的区别?

如何发送FETCH请求来执行Rails destroy_all?

我想我的API知识仍然有限,因为我无法弄清楚这一点。 我有一个应用程序位于React前端和Rails后端。 如果我想一次删除一个项目,我可以这样做: function deleteSomething(somethingId){ return fetch(`api/something/${somethingId}`, { method: ‘DELETE’ }) } 在Rails控制器中,我做了类似的事情 def destroy @something = Something.find(params[:id]).destroy head :no_content end 我的路线看起来像这样: scope :api do resources :something, only: [:index, :show, :create, :update, :destroy] … 这一次,我想一次销毁多个项目。 我找到了这篇关于destroy_all的SOpost ; 我在我的rails控制台上进行了测试,它就像魔法一样(Rails本身并不神奇吗?)。 但是,我无法弄清楚如何编写fetch方法或路由。 def destroy Something.destroy_all(:name => params[:name]) #if I want to destroy all Model with certain name end […]

带有expires_in的Rails.cache.fetch只有在新值不为nil时才会过期

我想做一个简单的Rails.cache.fetch并在大约10分钟后过期。 缓存中充满了来自外部API的json数据。 但是,有时无法访问外部API。 因此,当缓存过期并尝试获取新的json数据时,缓存内容将变为无效。 如果fetch_json返回有效数据,我怎样才能使Rails.cache.fetch只对EXPQRE缓存? 但是,如果收到新的有效数据,缓存应在10分钟后过期。 这是我尝试这样做的方式,但它不起作用。 更好的代码突出显示在这个要点: https : //gist.github.com/i42n/6094528 任何提示我如何才能完成这项工作? module ExternalApiHelper require ‘timeout’ require ‘net/http’ def self.fetch_json(url) begin result = Timeout::timeout(2) do # 2 seconds # operation that may cause a timeout uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Get.new(uri.request_uri) response = http.request(request) return JSON.parse(response.body) end return result rescue # […]

Ruby HTTP得到params

如何通过ruby发送带参数的HTTP GET请求? 我尝试了很多例子,但所有这些都失败了。

Rails:加号用空格代替GET-Request

在Rails 3(Ruby 1.9.2)中,我发送了一个请求 Started GET “/controller/action?path=/41_+” 但参数列表如下所示: {“path”=>”/41_ “, “controller”=>”controller”, “action”=>”action”} 这里出了什么问题? – , *或. 标志工作正常,它只是+将被空格所取代。