MimeFallback Build Status

Fix mime-type fallbacks when searching view paths.

Motivation

Let's say you want to render different views for mobile vs desktop. You decided to do it by defining a new Mime::Type alias for text/html. You want to fall back to rendering a html version from a mobile template.

users/show.html.erb:

<h1><%= @user.name %></h1>
<%= image_tag(@user.headshot) %>
<%= render partial: "header", locals: {user: @user} %>

users/show.mobile.erb:

<h1><%= @user.name %></h1>
<%= render partial: "header", locals: {user: @user} %>

You want the both of these partials to render the shared template users/_header.html.erb.

Usage

In your Gemfile:

gem 'mime_fallback'

In your config/initializers/mime_types.rb:

MimeFallback::Type.register_alias "text/html", :mobile, [], :html

That's it.