Вы можете поставить это на ApplicationController, но, честно говоря, я рекомендую против этого.ApplicationController имеет тенденцию становиться большим раздутым шариком с течением времени, накапливая служебные функции, которые на самом деле не связаны, определенно не SRP.Это может стать уродливым.
То, что я сделал, чтобы сохранить СУХОЕ состояние, - это создание родительского контроллера, от которого могут наследоваться связанные контроллеры.Поместите свой before_filter в него и получите от него наследуемые контроллеры, использующие категории.
Может быть:
class MainPagesController < ApplicationController
before_filter :load_categories
private
def load_categories
@categories = Category.all
end
end
class SomeController < MainPagesController
# etc.
end
Если ваше приложение маленького размера, оно не будет значительно расти со временеми вы действительно загружаете @categories почти на всех своих страницах, тогда может иметь смысл поместить их в ApplicationController.Но я склонен ошибаться из-за чрезмерной сушки моего кода.Очень маленькие классы с изолированной функциональностью никогда не бывает плохим.