J'ai un contrôleur dans lequel je dois accéder à la liste de mes rappels.Rails: sélectionnez ActiveSupport :: Callbacks sur les options
Je l'utiliser pour les filtrer:
_process_action_callbacks.select{|f| f.kind != :around}
Je suis en train de les filtrer aussi sur les options (à savoir sur les tableaux « si » et « moins »).
J'ai essayé
_process_action_callbacks.select{|f| f.if.any? }
mais il n'y a apparemment pas de méthode 'si'.
je déconcerté que j'ai ceci:
_process_action_callbacks.select{
|f| f.kind != :around
}.first
=> #<ActiveSupport::Callbacks::Callback:0x007fd1a16295d8
@chain_config=
{:scope=>[:kind],
:terminator=>
#<Proc:[email protected]/Users/name/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/actionpack-4.1.0/lib/abstract_controller/callbacks.rb:12 (lambda)>,
:skip_after_callbacks_if_terminated=>true},
@filter=:foo,
@if=["action_name == 'create'"], # 'if' seems present
...
et aussi ceci:
_process_action_callbacks.select{|f| f.kind != :around}.first.instance_variables
=> [:@chain_config, :@name, :@kind, :@filter, :@key, :@if, :@unless]
Y at-il un moyen d'obtenir les options ou le « si » du rappel?