ruby-on-rails - Rails 问题:创建用户可自定义 UI 文本的最佳方式是什么
问题描述
我有一个带有索引、显示页面和表单的常规 Rails 应用程序。
我想允许站点管理员在不更改代码的情况下自定义整个站点的默认文本。
例如,管理员应该能够将页面的 H1 标签从“用户索引”更改为“客户索引”,或者将表单标签从“用户名”更改为“客户名”。
我正在考虑创建一个名为ui_texts的模型,它有两个字段:
- machine_name:字符串
- 值:字符串
然后,我会用如下查询替换当前的硬编码文本:
Ui_text.where(machine_name:"user_name").value
管理员将有一个简单的 CRUD 来从管理界面编辑 ui_texts。
这种方法的问题在于,一个复杂的表单会生成数十甚至数百个数据库查询来填充所有 UI 文本。
即使我按machine_name进行索引,额外的查询也会为页面加载增加大量时间。
我想知道实现这种功能的最佳方法是什么?
解决方案
您可以使用 i18n 本地化您的应用程序并将其设置为使用数据库后端。预计这会花费您几个小时的时间,这相当麻烦。
https://guides.rubyonrails.org/i18n.html
https://guides.rubyonrails.org/i18n.html#using-different-backends
设置好之后,在应用程序中创建一个 CRUD 部分将很简单,用户可以在其中编辑他们喜欢的任何消息。
推荐阅读
- python - ELMo与Keras一起使用,如何正确输入训练集和标签?
- python - python中的轨迹交叉点
- python - 如何防止“hyperopt”将失败的模型结果整合到参数更新中?
- c++ - 使用 StretchDIBits 复制 PNG(带 alpha)
- python - 熊猫矢量化操作中的多个布尔条件
- docker - 从 compose 容器访问 dockerfile 的卷
- node.js - 如何使用 Pino.js 渲染新行
- ios - 如何在 Firestore 中存储对象数组
- python - 返回语句不返回电子邮件的值
- git - IntelliJ IDEA 无法识别我的项目在 git 中,分支名称为“N/A”