如果模板丢失,如何重定向

时间:2013-04-29 14:53:00

标签: ruby-on-rails routing

我为我的Rails应用创建了一个移动mime类型(即两种类型的视图文件,html.erbmobile.erb)。

我有一些尚未转换为static_pages/about.html.erb格式的静态页面(例如.mobile)。

如果有人试图在手机上访问丢失的模板,如何自动重定向到root_path?

1 个答案:

答案 0 :(得分:4)

虽然这很烦人,但我知道你正在这个过程中工作。

虽然没有经过验证,但有一个粗略的想法

class ApplicationController < ActionController::Base
  rescue_from ActionView::MissingTemplate, :with => :template_not_found

  private

  def template_not_found
    redirect_to root_path
  end
end

添加进一步的问题

对于您的进一步问题,您似乎正在从同一个域提供正常的站点和移动站点,并使用用户代理或其他JS方法进行检测。

我认为这里更好的做法是首先让普通网页服务(如果普通网站是你的第一个焦点),然后再适应移动设备。

因此,如果缺少模板,访问者可以通过渲染或重定向获得正常页面,即使他正在使用移动设备。

您不是唯一一个链接到您网页的人。用户可以添加社交书签,Google会将该网站编入索引。这些都会导致您的链接暴露。

如果他们中的大多数都被覆盖,我认为为缺少的模板添加救援是可以的。