2015-04-16 31 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