0

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

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

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

4

1 回答 1

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 将索引该站点。这些都导致您的链接暴露。

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

于 2013-04-29T15:05:24.343 回答