Экспертам по направляющим там я задавался вопросом, где/как Вы выполните тот же код для каждого действия в Вашем веб-приложении? Если бы можно указать на меня на статью или обеспечить отрывок короткого кода, я был бы очень признателен за его.
Заранее спасибо любому, кто может помочь.
Используйте фильтр в ApplicationController, чтобы запускать код для каждого действия в вашем приложении. Все ваши контроллеры происходят от ApplicationController, поэтому установка фильтра туда обеспечит запуск фильтра.
class ApplicationController
before_filter :verify_security_token
def verify_security_token; puts "Run"; end;
end
Мне кажется, вы говорите о фильтрах .
class MyController < ActionController::Base
before_filter :execute_this_for_every_action
def index
@foo = @bar
end
def new
@foo = @bar.to_s
end
def execute_this_for_every_action
@bar = :baz
end
end
Вы также можете поместить фильтр в ApplicationController, если хотите, чтобы каждый контроллер запускал его.
before_filter
, если вы хотите, чтобы код выполнялся «перед» каждым действием.
Если вы хотите, чтобы действие объявлялось каждый раз, когда вы его используете, вы можете поместить его в ApplicationController
и вызвать метод в любом контроллере.
Другой подход - использовать такие помощники, как:
module PersonHelper
def eat
{.. some code ..}
end
end
И в вашем контроллере:
class MyController < ActionController::Base
include PersonHelper
def index
eat
end
end