render_with_missing_template¶ ↑
Installation¶ ↑
Rails 3 only. Add following line to your Gemfile:
gem 'render_with_missing_template'
Examples:¶ ↑
app/controllers/test_controller.rb
def index # Renders template layouts/default/index if tests/index is missing render :if_missing => {:template => "layouts/default/index"} end
app/views/index.html.erb
<!-- Renders nothing if "navigation2" is missing --> <%= render :partial => "navigation2", :if_missing => false %> <!-- Renders template "layouts/defaults/navigation" if "navigation2" is missing --> <%= render :partial => "navigation2", :if_missing => {:template => "layouts/defaults/navigation"} %>
Note¶ ↑
app/controllers/test_controller.rb
def index # Renders template layouts/default/index if tests/index is missing render :if_missing => {:template => "layouts/default/index"} end def index # Renders template layouts/default/index if tests/index is missing inside layout 'nowhere'. Render options are merged with default options. # Not shure that it is good strategy to merge. May be, option is required. render :layout => 'nowhere', :if_missing => {:template => "layouts/default/index"} end
app/views/index.html.erb
<!-- Raises TemplateMissing because there is no :if_missing option here. --> <%= render :partial => "navigation2" %>