Rails metaprogrammin добавить перед фильтром

#ruby-on-rails #metaprogramming #before-filter

#ruby-on-rails #метапрограммирование #перед фильтром

Вопрос:

можно ли добавить некоторые перед фильтром с помощью метапрограммирования, то есть из какого-либо модуля, который расширяет мой контроллер? лучше всего было бы указать, после какого существующего он должен применяться, или просто добавить его в конце всех фильтров перед

Ответ №1:

Вы имеете в виду что-то вроде этого?

 module SomeMixin
  def self.included(clazz)
    clazz.class_exec do
      before_filter :filter_method
    end
  end

  def filter_method
    # some filter
  end
end
  

Ответ №2:

приветствия, нашел очень похожее решение в то же время

 def self.included(base)
  base.send :before_filter, :some_authorize, :only => :destroy
end

protected

def some_authorize
  authorize! :delete, @current_project
end