aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-05-26 17:30:17 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2014-05-26 17:30:17 -0700
commit40514aa23a6e74b576f6d2e4983bb71e0cc893b0 (patch)
tree2c71010260b2ffc9e6748f003f4fd87c824eec7b
parent02a9401d788425b02b7abc65793dff211dcff9c4 (diff)
downloadrails-40514aa23a6e74b576f6d2e4983bb71e0cc893b0.tar.gz
rails-40514aa23a6e74b576f6d2e4983bb71e0cc893b0.tar.bz2
rails-40514aa23a6e74b576f6d2e4983bb71e0cc893b0.zip
skip the build business if the stack is empty
-rw-r--r--actionpack/lib/action_controller/metal.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/actionpack/lib/action_controller/metal.rb b/actionpack/lib/action_controller/metal.rb
index a3ad5888de..37e48ee011 100644
--- a/actionpack/lib/action_controller/metal.rb
+++ b/actionpack/lib/action_controller/metal.rb
@@ -227,8 +227,12 @@ module ActionController
# Returns a Rack endpoint for the given action name.
def self.action(name, klass = ActionDispatch::Request)
- middleware_stack.build(name.to_s) do |env|
- new.dispatch(name, klass.new(env))
+ if middleware_stack.any?
+ middleware_stack.build(name.to_s) do |env|
+ new.dispatch(name, klass.new(env))
+ end
+ else
+ lambda { |env| new.dispatch(name, klass.new(env)) }
end
end