Я новичок в концепции кэширования счетчиков и с некоторыми астрономическими временами загрузки на одной из основных страниц приложения, я считаю, что мне нужно идти по ней.
Большинство кешей-счетчиков, которые мне нужно реализовать, имеют определенные (простые) условия. Например, вот общий запрос:
@projects = employee.projects.where("complete = ?", true).count
Я сталкиваюсь с проблемой запроса N+1
с приведенным выше, когда я показываю форму, в которой перечисляются количество проектов для каждого сотрудника, которого компания имеет.
Подход
Я действительно не знаю, что делаю, пожалуйста, исправьте меня!
# new migration
add_column :employees, :projects_count, :integer, :default => 0, :null => false
# employee.rb
has_many :projects
# project.rb
belongs_to :employee, :counter_cache => true
После миграции... это все, что мне нужно сделать?
Как я могу работать в условиях, о которых я говорил, чтобы минимизировать время загрузки?