首页 > 解决方案 > Rails 问题:创建用户可自定义 UI 文本的最佳方式是什么

问题描述

我有一个带有索引、显示页面和表单的常规 Rails 应用程序。

我想允许站点管理员在不更改代码的情况下自定义整个站点的默认文本。

例如,管理员应该能够将页面的 H1 标签从“用户索引”更改为“客户索引”,或者将表单标签从“用户名”更改为“客户名”。

我正在考虑创建一个名为ui_texts的模型,它有两个字段:

然后,我会用如下查询替换当前的硬编码文本: Ui_text.where(machine_name:"user_name").value

管理员将有一个简单的 CRUD 来从管理界面编辑 ui_texts。

这种方法的问题在于,一个复杂的表单会生成数十甚至数百个数据库查询来填充所有 UI 文本。

即使我按machine_name进行索引,额外的查询也会为页面加载增加大量时间。

我想知道实现这种功能的最佳方法是什么?

标签: ruby-on-rails

解决方案


您可以使用 i18n 本地化您的应用程序并将其设置为使用数据库后端。预计这会花费您几个小时的时间,这相当麻烦。

https://guides.rubyonrails.org/i18n.html

https://guides.rubyonrails.org/i18n.html#using-different-backends

设置好之后,在应用程序中创建一个 CRUD 部分将很简单,用户可以在其中编辑他们喜欢的任何消息。


推荐阅读