我在哪里放一个扩展名open_uri

时间:2013-05-29 09:31:23

标签: ruby-on-rails ruby redirect open-uri

我正在尝试从Twitter上获取图片:

open("http://api.twitter.com/1/users/profile_image/barackobama.png?size=bigger")

但我明白了:

RuntimeError: redirection forbidden: http://... -> https://...

有一个open issue似乎我可以使用extension to open_uri,但我不知道它是如何工作的。例如,如果我将其放在lib/中,或者如果我将模块粘贴到控制台中,它仍然无效。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为放置此类补丁的正确位置是config/initializers内的文件,即config/initializers/open_uri_allow_unsafe_redirects_patch.rb。在重新打开require 'open-uri'模块之前,您必须OpenURI

require 'open-uri'    
module OpenURI
  # the rest of the file here...
end

然后您必须致电open,将allow_unsafe_redirects选项设置为true

open('http://api.twitter.com/1/users/profile_image/barackobama.png?size=bigger',
     allow_unsafe_redirects: true)

您可以在Ruby on Rails guide

上找到有关初始化程序文件的更多信息