• C
    Add config to halt callback chain on return false · 9c65c539
    claudiob 提交于
    This stems from [a comment](rails#17227 (comment)) by @dhh.
    In summary:
    
    * New Rails 5.0 apps will not accept `return false` as a way to halt callback chains, and will not display a deprecation warning.
    * Existing apps ported to Rails 5.0 will still accept `return false` as a way to halt callback chains, albeit with a deprecation warning.
    
    For this purpose, this commit introduces a Rails configuration option:
    
    ```ruby
    config.active_support.halt_callback_chains_on_return_false
    ```
    
    For new Rails 5.0 apps, this option will be set to `false` by a new initializer
    `config/initializers/callback_terminator.rb`:
    
    ```ruby
    Rails.application.config.active_support.halt_callback_chains_on_return_false = false
    ```
    
    For existing apps ported to Rails 5.0, the initializers above will not exist.
    Even running `rake rails:update` will not create this initializer.
    
    Since the default value of `halt_callback_chains_on_return_false` is set to
    `true`, these apps will still accept `return true` as a way to halt callback
    chains, displaying a deprecation warning.
    
    Developers will be able to switch to the new behavior (and stop the warning)
    by manually adding the line above to their `config/application.rb`.
    
    A gist with the suggested release notes to add to Rails 5.0 after this
    commit is available at https://gist.github.com/claudiob/614c59409fb7d11f2931
    9c65c539
upgrading_ruby_on_rails.md 45.2 KB