Est-ce que quelqu'un sait comment déterminer si une association Rails a été chargée?Comment faire pour déterminer si l'association Rails est surchargée?
Ma situation: J'ai un jeu de résultats où parfois l'une des associations est chargée, et parfois non. Si ce n'est pas le cas, je veux rechercher des associations en utilisant la recherche d'ActiveRecord. Si elle est chargée, je veux utiliser détecter. Par exemple, disons que j'ai un tableau "has_many" d'objets shipping_info dans mon modèle d'objet. Puis:
Si l'élément est charge désireux chargé, le plus efficace est:
item.shipping_infos.detect { |si| si.region == "United States" }
Si l'article n'est pas impatient chargé, la charge la plus efficace est:
item.shipping_infos.where(region: "United States").first
Mais à moins que je sais que ce est impatient chargé, je ne sais pas quel code appeler pour obtenir le record efficacement. Si j'utilise la première méthode alors qu'elle n'était pas très sollicitée, je dois rechercher plus d'enregistrements DB que nécessaire. Et si j'utilise la seconde méthode quand elle était chargée, mes objets chargés sont ignorés.
Merci Bryan. Je comprends d'où tu viens. Ce code particulier se trouve être dans le plus souvent appelé partiel dans notre application entière, cependant, raser même microsecondes fait une différence mesurable. Je vais donner #loaded? un essai. – wbharding
Cela ne fonctionnera que pour has_many associations! Dans le cas de belongs_to cet appel chargera réellement l'autre objet (ainsi ce sera toujours vrai) – reto