Je suis en train d'utiliser la dernière version de globalize2 et rails 2.2. Je me demande si ce qui suit est un bug ou une fonctionnalité: il semble y avoir une requête db séparée pour chaque élément dans un ensemble de données pour obtenir la traduction. Cela ne semble pas correct car il peut facilement entraîner des centaines de requêtes.Traduction du modèle avec Globalize2 (rails)
Illustration. Contrôleur simple:
def index
@menu_sections = MenuSection.find(:all)
end
Alors @menu_sections est mis en boucle à travers dans une vue, où l'attribut localisé (nom) est appelé:
<% @menu_sections.each do |menu_section| %>
<p><%= link_to menu_section.name, :controller => 'store', :action => 'list_menu_items_for_section', :section_id => menu_section.id %></p>
<% end %>
Ressemble tous les résultats menu_section.name en recherche db:
Processing StoreController#index (for 10.0.2.2 at 2009-03-02 16:05:53) [GET] Session ID: 468f54928cbdc0b19c03cfbd01d09fa9 Parameters: {"action"=>"index", "controller"=>"store"} MenuSection Load (0.0ms) SELECT * FROM `menu_sections` Rendering template within layouts/store Rendering store/index Rendered application/_js_includes (0.0ms) MenuSection Columns (0.0ms) SHOW FIELDS FROM `menu_sections` MenuSectionTranslation Load (0.0ms) SELECT * FROM `menu_section_translations` WHERE (`menu_section_translations`.menu_section_id = 1 AND (`menu_section_translations`.`locale` IN ('en','root'))) MenuSectionTranslation Columns (0.0ms) SHOW FIELDS FROM `menu_section_translations` MenuSectionTranslation Load (0.0ms) SELECT * FROM `menu_section_translations` WHERE (`menu_section_translations`.menu_section_id = 2 AND (`menu_section_translations`.`locale` IN ('en','root'))) MenuSectionTranslation Load (0.0ms) SELECT * FROM `menu_section_translations` WHERE (`menu_section_translations`.menu_section_id = 3 AND (`menu_section_translations`.`locale` IN ('en','root'))) Completed in 340ms (View: 320, DB: 0) | 200 OK [http://www.dev.babooka.com/store]
Qu'en pensez-vous? Peut-être existe-t-il un meilleur moyen de traduire les données db dans les rails?