aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/CHANGELOG15
-rwxr-xr-xactionpack/lib/action_controller/base.rb2
2 files changed, 17 insertions, 0 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index 911ffd4340..d43ada01f0 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,5 +1,20 @@
*SVN*
+* Added that all renders and redirects now return false, so they can be used as the last line in before_filters to stop execution.
+
+ Before:
+ def authenticate
+ unless @session[:authenticated]
+ redirect_to :controller => "account", :action => "login"
+ return false
+ end
+ end
+
+ After:
+ def authenticate
+ redirect_to(:controller => "account", :action => "login") unless @session[:authenticated]
+ end
+
* Added conditional filters #431 [Marcel]. Example:
class JournalController < ActionController::Base
diff --git a/actionpack/lib/action_controller/base.rb b/actionpack/lib/action_controller/base.rb
index dbdce1bbfd..33e3014ee9 100755
--- a/actionpack/lib/action_controller/base.rb
+++ b/actionpack/lib/action_controller/base.rb
@@ -389,6 +389,7 @@ module ActionController #:nodoc:
@response.headers["Status"] = status || DEFAULT_RENDER_STATUS_CODE
@response.body = block_given? ? block : text
@performed_render = true
+ return false
end
# Renders an empty response that can be used when the request is only interested in triggering an effect. Do note that good
@@ -543,6 +544,7 @@ module ActionController #:nodoc:
logger.info("Redirected to #{url}") unless logger.nil?
@response.redirect(url, permanently)
@performed_redirect = true
+ return false
end
# Resets the session by clearsing out all the objects stored within and initializing a new session object.