diff options
author | claudiob <claudiob@gmail.com> | 2015-01-08 09:30:31 -0800 |
---|---|---|
committer | claudiob <claudiob@gmail.com> | 2015-01-08 09:30:31 -0800 |
commit | 9a25603d0aa2d3de35ce59fcfe8b90cdfddb78cf (patch) | |
tree | f57a8159192e1cb676f6167616a74761c947153d /actionpack/lib | |
parent | ae9f803c5dfbc06701de87b804250b591fac2d20 (diff) | |
download | rails-9a25603d0aa2d3de35ce59fcfe8b90cdfddb78cf.tar.gz rails-9a25603d0aa2d3de35ce59fcfe8b90cdfddb78cf.tar.bz2 rails-9a25603d0aa2d3de35ce59fcfe8b90cdfddb78cf.zip |
Add test/doc for :if/:except in skip_before_action
The new test/docs further explain the conflicts that can happen when
mixing `:if`/`:unless` options with `:only`/`:except` options in
`skip_before_action`.
The gist is that "positive" filters always have priority over negative
ones.
The previous commit already showed that `:only` has priority over `:if`.
This commit shows that `:if` has priority over `:except`.
For instance, the following snippets are equivalent:
```ruby
skip_before_action :some_callback, if: -> { condition }, except: action
```
```ruby
skip_before_action :some_callback, if: -> { condition }
```
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/abstract_controller/callbacks.rb | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/actionpack/lib/abstract_controller/callbacks.rb b/actionpack/lib/abstract_controller/callbacks.rb index 865bd6bbe0..8571383739 100644 --- a/actionpack/lib/abstract_controller/callbacks.rb +++ b/actionpack/lib/abstract_controller/callbacks.rb @@ -33,6 +33,11 @@ module AbstractController # # only: :index, if: -> { true } # the :if option will be ignored. # + # Note that <tt>:if</tt> has priority over <tt>:except</tt> in case they + # are used together. + # + # except: :index, if: -> { true } # the :except option will be ignored. + # # ==== Options # * <tt>only</tt> - The callback should be run only for this action # * <tt>except</tt> - The callback should be run for all actions except this action |