Если переменная, о которой вы говорите, инициализируется из параметра запроса, ее необходимо инициализировать для каждого запроса.Поэтому подходящим местом для этого должен быть фильтр before.
Я пробовал before_filter в applicationController, но он запускается при каждом моем запросе, даже если это ajax-запрос.
Обратите внимание, что ajax-запрос - это обычный запрос, видимый со стороны сервера, поэтому я не понимаю ваше "даже".Если значение, которое вы проверяете, исходит из параметра запроса и вам это нужно в каждом контроллере / действии, вы действительно выполняете эту инициализацию в ApplicationController
, в противном случае вы можете вызвать этот фильтр только в некотором контроллере (или даже только для какого-то действия)с этим синтаксисом
# to execute it only for some actions
before_filter :your_initialization_method, :only => [:action1, :action2]
# or to exclude some actions
before_filter :your_initialization_method, :except => [:action1, :action2]
Если вам нужно совместно использовать этот метод для разных контроллеров, определите его в ApplicationController
и выполняйте вызов before_filter
только в соответствующих контроллерах.