2015-04-16 16 views
4

我的应用程序有以下控制器动作:如何使用Rails使用代理解析URL?

def test 

    #get URL 
    url = "http://www.coteur.com/surebet.php" 
    doc = Nokogiri::HTML(open(url)) 
    @show = doc.at_css("title").text 

    @game_data = Array.new 
    doc.css('tbody').each do |tr| 
    tr.css("tr").each do |f| 
     @game_data.push(f.css("td").text) 
    end 
    end 

end 

并呈现以下几种观点:

<%= @show%> 
<div class="bs-example" data-example-id="hoverable-table"> 
    <table class="table table-hover"> 
    <tbody> 
     <% if @game_data.empty? %> 
     <tr> 
      <td>Nope</td> 
     </tr> 
     <%else%> 
     <% @game_data.each do |game|%> 
      <tr> 
      <td><%= game%></td> 
      </tr> 
     <%end%> 
     <%end%> 
    </tbody> 
    </table> 
</div> 

一切工作正常,但本地Heroku上的<%= @game_data%>看起来是空的,而它不应该是。问题是,在美国它不起作用,但在欧盟它却行。那么我该如何使用代理或更改服务器位置或其他东西来解决这个问题?

+0

当您在美国区域运行时,您是否看到日志中有任何错误?它可以在不需要代理的情况下解决。另外,不要将用户数据传递到'open()',因为它会将应用程序打开到远程执行代码。 – Drenmi

+0

您可以使用'doc.title'而不是'doc.at_css(“title”).text'。 –

回答

1

您可以派生您当前的Heroku应用到欧洲地区有:

$ heroku fork --region eu 
Creating fork myapp-332... done 
Copying slug... done 
Copying config vars... done 
Fork complete, view it at http://myapp-332.herokuapp.com/ 

现在,你有你的应用在欧洲运行的副本可以更好地为您。如果这样的作品,你可以保留新的应用程序,并关闭旧的。

查看fork application docs了解更多详情。

+0

如何删除heroku分叉? – Antoine

+0

'heroku应用程序:销毁 - 一个应用程序名称 – infused