如何在rails视图中显示外部站点?

时间:2015-06-09 21:34:38

标签: ruby-on-rails ruby iframe

我试图在我的Rails应用程序中构建一个镜像,该应用程序镜像外部站点上的页面。所以基本上,不是链接到外部页面,外部页面将在我的视图中显示。

有没有办法在不使用iFrame的情况下执行此操作,或者这是唯一的方法吗?

2 个答案:

答案 0 :(得分:4)

您可以使用Javascript从外部网站加载内容,并在视图中显示该内容。

以下是代码:

<script>
    $("#externalSiteContent").load("http://www.example.com/index.html");
</script>
<div id="externalSiteContent"></div>

答案 1 :(得分:2)

这是一种全铁路方式:

class YahooController < ApplicationController

  layout false

  def show 
    url = URI.parse('http://www.yahoo.com/')
    req = Net::HTTP::Get.new(url.to_s)
    res = Net::HTTP.start(url.host, url.port) {|http|
      http.request(req)
    }

    @body = res.body
  end

end

在视图中

# views/yahoo/show.html.haml
= @body.html_safe

当然,你需要一条路线。

# routes.rb
get '/yahoo', :to => 'yahoo#show'