1


我对 Rails 相当陌生,我的问题如下:
我正在通过我的服务器向远程网站发出 GET 请求,并将响应作为 HTML 发送到我的前端。
不幸的是,我从远程站点解析的 HTML 引用了静态文件,这导致 ActionController::RoutingError (No route matches [GET] "...")

如何在我的控制器中抑制这些错误,以便它们没有出现在我的浏览器控制台中?代码如下:

def get_page

    url = URI.parse('[website]')
    req = Net::HTTP::Get.new(url.path)
    res = Net::HTTP.start(url.host, url.port) {|http|
      http.request(req)
    }

    @result = res.body

    respond_to do |format|
      format.html { render :text => @result }
    end
end

感谢任何帮助!

4

1 回答 1

0

我已经想通了,但我不确定这是否是一个非常优雅的解决方案。

在我的 routes.rb 中,我将以下行放在所有已定义路由的底部:

get '*static'  => 'home#static_404'

然后我将以下方法放入我的“家庭控制器”中:

  def static_404
    render :nothing => true
  end

似乎工作,但我不喜欢 Rails 如何强迫我使用*[random_letters]来定义这个错误路线。
*本身似乎不起作用,但如果我之后输入任何内容,它就会起作用。

于 2013-05-28T13:07:35.227 回答