Я работаю над приложением rails, в котором есть целый набор фильтров before в users_controller, которые просматривают роли пользователя с состоянием, предоставляемые Acts в качестве конечного автомата.
Они выглядят примерно так:
class UsersController < ApplicationController
before_filter :not_logged_in_required, :only => [:new, :create]
before_filter :find_user_or_current_user, :only => [:edit, :update]
before_filter :find_user, :only => [:suspend, :unsuspend, :destroy, :purge]
before_filter :admin_required, :only => [:suspend, :unsuspend, :destroy, :purge]
before_filter :check_administrator_role, :only [:index, :suspend, :destroy, :purge]
Со всей этой проверкой состояний для каждого действия, контролируемого UsersController, производительность становится проблемой, поскольку запросы SQL к столбцу Users на моем компьютере занимают более 5 мс.
Я только предполагаю, что все эти фильтры играют определенную роль в производительности перетаскивания, и мне интересно, как лучше их реорганизовать, чтобы улучшить чтение из базы данных.