From b3a028259f373fd58fea2171a1e9e8b2fe3e253a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 31 Jan 2010 10:24:38 +0100 Subject: Improve missing template error messages a little bit. --- actionpack/lib/action_view/base.rb | 17 +++++++++++------ actionpack/lib/action_view/paths.rb | 2 +- actionpack/test/controller/mime_responds_test.rb | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb index af13f2cd3e..07ef3f2140 100644 --- a/actionpack/lib/action_view/base.rb +++ b/actionpack/lib/action_view/base.rb @@ -6,15 +6,20 @@ module ActionView #:nodoc: end class MissingTemplate < ActionViewError #:nodoc: - attr_reader :path, :action_name + attr_reader :path - def initialize(paths, path, template_format = nil) + def initialize(paths, path, details, partial) @path = path - @action_name = path.split("/").last.split(".")[0...-1].join(".") - full_template_path = path.include?('.') ? path : "#{path}.erb" display_paths = paths.compact.join(":") - template_type = (path =~ /layouts/i) ? 'layout' : 'template' - super("Missing #{template_type} #{full_template_path} in view path #{display_paths}") + template_type = if partial + "partial" + elsif path =~ /layouts/i + 'layout' + else + 'template' + end + + super("Missing #{template_type} #{path} with #{details.inspect} in view path #{display_paths}") end end diff --git a/actionpack/lib/action_view/paths.rb b/actionpack/lib/action_view/paths.rb index 0059b79e5f..6e55d69d00 100644 --- a/actionpack/lib/action_view/paths.rb +++ b/actionpack/lib/action_view/paths.rb @@ -45,7 +45,7 @@ module ActionView #:nodoc: end end - raise ActionView::MissingTemplate.new(self, "#{prefix}/#{path} - #{details.inspect} - partial: #{!!partial}") + raise ActionView::MissingTemplate.new(self, "#{prefix}/#{path}", details, partial) end def exists?(path, extension = nil, prefix = nil, partial = false) diff --git a/actionpack/test/controller/mime_responds_test.rb b/actionpack/test/controller/mime_responds_test.rb index ba2347e4e2..3bd3369242 100644 --- a/actionpack/test/controller/mime_responds_test.rb +++ b/actionpack/test/controller/mime_responds_test.rb @@ -499,7 +499,7 @@ class RespondWithController < ActionController::Base def using_resource_with_action respond_with(resource, :action => :foo) do |format| - format.html { raise ActionView::MissingTemplate.new([], "method") } + format.html { raise ActionView::MissingTemplate.new([], "foo/bar", {}, false) } end end -- cgit v1.2.3