aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_controller/base/base.rb2
-rw-r--r--actionpack/lib/action_controller/dispatch/dispatcher.rb1
-rw-r--r--actionpack/lib/action_view/base.rb3
-rw-r--r--actionpack/lib/action_view/render/rendering.rb2
-rw-r--r--actionpack/test/controller/base_test.rb2
5 files changed, 6 insertions, 4 deletions
diff --git a/actionpack/lib/action_controller/base/base.rb b/actionpack/lib/action_controller/base/base.rb
index 29d87d8125..7a745ea040 100644
--- a/actionpack/lib/action_controller/base/base.rb
+++ b/actionpack/lib/action_controller/base/base.rb
@@ -832,7 +832,7 @@ module ActionController #:nodoc:
begin
default_render
rescue ActionView::MissingTemplate => e
- raise e unless e.path == action_name
+ raise e unless e.action_name == action_name
# If the path is the same as the action_name, the action is completely missing
raise UnknownAction, "No action responded to #{action_name}. Actions: " +
"#{action_methods.sort.to_sentence}", caller
diff --git a/actionpack/lib/action_controller/dispatch/dispatcher.rb b/actionpack/lib/action_controller/dispatch/dispatcher.rb
index df77e22204..e205245f13 100644
--- a/actionpack/lib/action_controller/dispatch/dispatcher.rb
+++ b/actionpack/lib/action_controller/dispatch/dispatcher.rb
@@ -64,7 +64,6 @@ module ActionController
run_callbacks :before_dispatch
Routing::Routes.call(@env)
rescue Exception => exception
- raise exception
if controller ||= (::ApplicationController rescue Base)
controller.call_with_exception(@env, exception).to_a
else
diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb
index 2f7cfeb88e..ada9052073 100644
--- a/actionpack/lib/action_view/base.rb
+++ b/actionpack/lib/action_view/base.rb
@@ -3,10 +3,11 @@ module ActionView #:nodoc:
end
class MissingTemplate < ActionViewError #:nodoc:
- attr_reader :path
+ attr_reader :path, :action_name
def initialize(paths, path, template_format = nil)
@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'
diff --git a/actionpack/lib/action_view/render/rendering.rb b/actionpack/lib/action_view/render/rendering.rb
index 68b343de77..2d8bdab100 100644
--- a/actionpack/lib/action_view/render/rendering.rb
+++ b/actionpack/lib/action_view/render/rendering.rb
@@ -79,7 +79,7 @@ module ActionView
@_render_stack.pop
result
rescue Exception => e
- raise e if !template.filename || template.is_a?(InlineTemplate)
+ raise e if template.is_a?(InlineTemplate) || !template.filename
if TemplateError === e
e.sub_template_of(template)
raise e
diff --git a/actionpack/test/controller/base_test.rb b/actionpack/test/controller/base_test.rb
index 9523189f41..f4517d06c4 100644
--- a/actionpack/test/controller/base_test.rb
+++ b/actionpack/test/controller/base_test.rb
@@ -170,6 +170,7 @@ class DefaultUrlOptionsTest < ActionController::TestCase
tests DefaultUrlOptionsController
def setup
+ super
@request.host = 'www.example.com'
rescue_action_in_public!
end
@@ -193,6 +194,7 @@ class EmptyUrlOptionsTest < ActionController::TestCase
tests NonEmptyController
def setup
+ super
@request.host = 'www.example.com'
rescue_action_in_public!
end