Activeadmin查询数据库中的每个属性标签

时间:2019-08-09 15:16:36

标签: ruby-on-rails ruby internationalization activeadmin rails-i18n

i18n-active_record用于多种语言环境。在我的网站上效果很好。

但是我面临的问题是,activeadmin页中的加载时间太长,当我看到日志时,它会在翻译表上查询每个标签

例如

SELECT COUNT(*) FROM `translations` WHERE `translations`.`locale` = 'en' AND (`key` IN ('activerecord.models.admin') OR `key` LIKE 'activerecord.models.admin.%');

SELECT COUNT(*) FROM `translations` WHERE `translations`.`locale` = 'en' AND (`key` IN ('active_admin.resources.article.new_model') OR `key` LIKE 'active_admin.resources.article.new_model.%');

SELECT COUNT(*) FROM `translations` WHERE `translations`.`locale` = 'en' AND (`key` IN ('formtastic.labels.q.index.title') OR `key` LIKE 'formtastic.labels.q.index.title.%'); 

SELECT COUNT(*) FROM `translations` WHERE `translations`.`locale` = 'en' AND (`key` IN ('formtastic.labels.q.title') OR `key` LIKE 'formtastic.labels.q.title.%'); 

由于此原因,管理面板的使用量越来越大,数据库上的负载也越来越大,并且每一列在转换表上都有200多个查询

如何在不使用语言环境的情况下加载activeadmin?

1 个答案:

答案 0 :(得分:0)

您应该看看https://guides.rubyonrails.org/i18n.html

  

遵循有关配置原理的约定,Rails I18n提供了合理的默认转换字符串。需要不同的翻译字符串时,可以覆盖它们。

     

Rails将config / locales目录中的所有.rb和.yml文件自动添加到翻译加载路径中。

     

此目录中的默认en.yml语言环境包含一对翻译字符串示例

您需要将翻译存储在应用本身而不是数据库中的YAML文件中。例如,您的第一个翻译是:

# config/locales/en.yml

activerecord:
  models:
    admin: translation_required_for_this_locale