aboutsummaryrefslogtreecommitdiffstats
path: root/guides/source/upgrading_ruby_on_rails.md
diff options
context:
space:
mode:
authorRodrigo Rosenfeld Rosas <rr.rosas@gmail.com>2016-06-30 14:37:39 -0300
committerGitHub <noreply@github.com>2016-06-30 14:37:39 -0300
commit39b576a31a7e973192f8b15a4fe067b5f1053cad (patch)
tree705038b3fcfa9713eec4dbd4cbe5c3bc53e979b2 /guides/source/upgrading_ruby_on_rails.md
parente4c8aae643f36377a2eb6d42360eccc3f1f0d398 (diff)
downloadrails-39b576a31a7e973192f8b15a4fe067b5f1053cad.tar.gz
rails-39b576a31a7e973192f8b15a4fe067b5f1053cad.tar.bz2
rails-39b576a31a7e973192f8b15a4fe067b5f1053cad.zip
Add an upgrade note related to ActionController::Live becoming a Concern
See issue #25581: https://github.com/rails/rails/issues/25581
Diffstat (limited to 'guides/source/upgrading_ruby_on_rails.md')
-rw-r--r--guides/source/upgrading_ruby_on_rails.md29
1 files changed, 29 insertions, 0 deletions
diff --git a/guides/source/upgrading_ruby_on_rails.md b/guides/source/upgrading_ruby_on_rails.md
index 97d8cd392a..f276f64807 100644
--- a/guides/source/upgrading_ruby_on_rails.md
+++ b/guides/source/upgrading_ruby_on_rails.md
@@ -249,6 +249,35 @@ Rails.application.configure do
end
```
+### `ActionController::Live` became a `Concern`
+
+That means that if your application used to have its own streaming module, the following code
+would break in production mode:
+
+```ruby
+# This is a work-around for streamed controllers performing authentication with Warden/Devise.
+# See https://github.com/plataformatec/devise/issues/2332
+# Authenticating in the router is another solution as suggested in that issue
+class StreamingSupport
+ include ActionController::Live # this won't work in production for Rails 5
+ # extend ActiveSupport::Concern # unless you uncomment this line.
+
+ def process(name)
+ super(name)
+ rescue ArgumentError => e
+ if e.message == 'uncaught throw :warden'
+ throw :warden
+ else
+ raise e
+ end
+ end
+end
+```
+
+If you include `ActionController::Live` in another module that is included in your controller you
+should also extend the module with `ActiveSupport::Concern`. Or you could use the `self.included` hook
+to include `ActionController::Live` directly to the controller once the `StreamingSupport` is included.
+
### New Framework Defaults
#### Active Record `belongs_to` Required by Default Option