Class: AbstractController::Callbacks::ActionFilter
- Defined in:
- actionpack/lib/abstract_controller/callbacks.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#initialize(filters, conditional_key, actions) ⇒ ActionFilter
constructor
A new instance of ActionFilter.
- #match?(controller) ⇒ Boolean (also: #after, #before, #around)
Constructor Details
#initialize(filters, conditional_key, actions) ⇒ ActionFilter
Returns a new instance of ActionFilter.
40 41 42 43 44 |
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 40 def initialize(filters, conditional_key, actions) @filters = filters.to_a @conditional_key = conditional_key @actions = Array(actions).map(&:to_s).to_set end |
Instance Method Details
#match?(controller) ⇒ Boolean Also known as: after, before, around
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'actionpack/lib/abstract_controller/callbacks.rb', line 46 def match?(controller) if controller.raise_on_missing_callback_actions missing_action = @actions.find { |action| !controller.available_action?(action) } if missing_action filter_names = @filters.length == 1 ? @filters.first.inspect : @filters.inspect = " The \#{missing_action} action could not be found for the \#{filter_names}\n callback on \#{controller.class.name}, but it is listed in the controller's\n \#{@conditional_key.inspect} option.\n\n Raising for missing callback actions is a new default in Rails 7.1, if you'd\n like to turn this off you can delete the option from the environment configurations\n or set `config.action_controller.raise_on_missing_callback_actions` to `false`.\n MSG\n\n raise ActionNotFound.new(message, controller, missing_action)\n end\n end\n\n @actions.include?(controller.action_name)\nend\n" |