Rails - 在服务器端抑制RoutingError 404以获取静态内容

时间:2013-05-28 12:18:03

标签: ruby-on-rails ruby static rails-routing


我对Rails相当新,我的问题如下:
我正在通过我的服务器向远程网站发出GET请求,并将响应作为HTML提交给我的前端。
不幸的是,我从远程站点解析的HTML引用了静态文件,导致ActionController :: RoutingError(没有路由匹配[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

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

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

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

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

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

  def static_404
    render :nothing => true
  end

似乎有效,但我不喜欢Rails如何强迫我使用 * [random_letters] 来定义此错误路径。
* 不会似乎单独工作,但如果我事后输入任何内容,那就可以了。