¿Puede un tipo mime móvil volver a "html" en Rails?
Estoy usando este código (tomado deaquí) en ApplicationController para detectar solicitudes de iPhone, iPod Touch y iPad:
before_filter :detect_mobile_request, :detect_tablet_request
protected
def detect_mobile_request
request.format = :mobile if mobile_request?
end
def mobile_request?
#request.subdomains.first == 'm'
request.user_agent =~ /iPhone/ || request.user_agent =~ /iPod/
end
def detect_tablet_request
request.format = :tablet if tablet_request?
end
def tablet_request?
#request.subdomains.first == 't'
request.user_agent =~ /iPad/
end
Esto me permite tener plantillas como show.html.erb, show.mobile.erb y show.tablet.erb, lo cual es genial, pero hay un problema: parece que debo definir cada plantilla para cada tipo de mime. Por ejemplo, solicitar la acción "mostrar" de un iPhone sin definir show.mobile.erb arrojará un error incluso si se define show.html.erb. Si falta una plantilla para dispositivos móviles o tabletas, me gustaría simplemente recurrir a la plantilla html. No parece demasiado descabellado ya que "mobile" se define como un alias de "text / html" en mime_types.rb.
Entonces, algunas preguntas:
¿Estoy haciendo esto mal? O, ¿hay una mejor manera de hacer esto?Si no es así, ¿puedo hacer que los tipos mime móviles y tabletas recurran a html si no hay un archivo móvil o tableta?Si es importante, estoy usando Rails 3.0.1. De antemano, gracias por cualquier consejo.
EDITAR: Algo que olvidé mencionar: eventualmente me mudaré a subdominios separados (como puede ver comentado en mi ejemplo), por lo que la carga de la plantilla realmente debe ocurrir automáticamente, independientemente de québefore_filter
ha corrido.