使用 AJAX 作为数据源时,使用数据表搜索/排序 I18n 字符串的推荐方法是什么?



因此,我和我的团队正在开发这个应用程序,我们在其中使用DataTablesjQuery插件(http://datatables.net/)以呈现Rails(3.0.7)后端提供的表格数据。

数据表的内置AJAX搜索和排序功能与Rails的I18n支持之间的交互存在问题。有些列显示的配置数据来自数据库(在种子文件中创建),但由于它是一个固定的数据集,因此是国际化的。当用户尝试搜索或排序时,我们应该对可见的I18n'ed字符串执行这些操作。但是,由于搜索和排序是委托给后端的,控制器将对字符串的内部版本而不是用户可见的版本执行所需的查询,这将导致错误的结果。

我们首先想到的解决方案是使用控制器:

  • 在没有任何标准的情况下执行DB查询并存储结果
  • I18n——结果集中所需的值
  • 然后对结果进行排序/筛选

但这对服务器的要求太高了。我们考虑的另一个选项是在具有I18n可值的表中包含所需的I18n,但这打破了应用程序的关注点分离。因此,我们不知道应该采用什么机制来实现这一功能。有人能帮我们吗?

我们也遇到了类似的问题:我们必须维护一个带有艺术品名称的数据库表。有时,艺术品在其他语言中有不同的名字。为了使这些(我们最终称之为)同义词可以搜索,我们将它们插入到同义词表中。这可能不是您的解决方案。

看看雪貂宝石,它提供了ruby代码的索引。您可以简单地每隔一段时间重新构建这个索引,并包括翻译。这样,您的控制器可以轻松地搜索它们,并且不会打破关注点的分离,因为它只是数据的另一种表示。

最新更新