j'ai un modèle User.rb
qui comprend la ligne:runs acts_as_taggable requêtes sur chaque demande
acts_as_taggable_on :industries, :uxes
[Le terme « ux » contient les préférences UX appartenant à l'utilisateur, comme s'ils ont rejeté une certaine boîte d'aide. ]
Ce que j'ai remarqué est les requêtes suivantes se chargent en haut de chaque demande impliquant un @user
:
User Load (1.4ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 354 LIMIT 1
ActsAsTaggableOn::Tag Load (0.4ms) SELECT `tags`.* FROM `tags` INNER JOIN `taggings` ON `tags`.id = `taggings`.tag_id WHERE ((`taggings`.taggable_id = 354) AND (`taggings`.taggable_type = 'User')) AND (taggings.context = 'uxes' AND taggings.tagger_id IS NULL)
AREL (0.3ms) UPDATE `users` SET `last_request_at` = '2012-09-17 09:44:24', `perishable_token` = 'un5eK7SHDNzTegt7GPUk', `updated_at` = '2012-09-17 09:44:24' WHERE `users`.`id` = 354
ActsAsTaggableOn::Tag Load (0.3ms) SELECT `tags`.* FROM `tags` INNER JOIN `taggings` ON `tags`.id = `taggings`.tag_id WHERE ((`taggings`.taggable_id = 354) AND (`taggings`.taggable_type = 'User')) AND (taggings.context = 'uxes' AND taggings.tagger_id IS NULL)
ActsAsTaggableOn::Tagging Load (0.4ms) SELECT `taggings`.* FROM `taggings` WHERE `taggings`.`tagger_type` IS NULL AND `taggings`.`tagger_id` IS NULL AND `taggings`.`context` = 'uxes' AND `taggings`.`tag_id` IN (NULL) AND (`taggings`.taggable_id = 354 AND `taggings`.taggable_type = 'User')
Ces requêtes sont Ding temps à chaque pageload sur lequel un utilisateur est chargé (c.-à-d. 90% + de tous les pageloads). Pourquoi acts_as_taggable
forcer ces requêtes à se produire, et comment puis-je l'empêcher de les charger à moins que nécessaire?