为Rails为字符串的数字部分上色的最有效的方法

Most efficient way to color the number part of a string for Rails?

本文关键字:有效 方法 Rails 字符串 数字部      更新时间:2023-09-26

我让用户提交一行("description"),其中必须包含一个数字。

目前,我让用户在描述"253 foo foo bar bar"的开头提交号码——但我想改变它,以便号码可以在任何地方。"foo foo foo 253 bar bar bar bar", "253 foo foo bar bar", "bar bar foo 253"

数字有不同的CSS类。我的目标是显示描述字符串并在数字周围换行标记。我应该如何构建我的模型/视图,使用Javascript/rails,为了做到这一点?

这些是我想到的可能性。我想保留MVC,并最大限度地提高渲染视图的性能。用户提交的一行代码在后端得到处理。目前,我的数据库有Item.descriptionItem.number

  1. Item.description_before, Item.number, Item.description_after——用户提交时,将描述字符串分成两部分。这看起来会有很好的性能和可读性,因为在视图中,我可以只做<%= Item.description_before + "#{Item.number}" + Item.description_after。但是,把描述分成两部分似乎也很奇怪。

  2. Item.number_position -记录数字在字符串中的位置,然后使用ruby字符串操作在字符串中的n字符周围添加<class>标记。

  3. 使用Javascript查找数字-但是如果我列出25个帖子,我必须在每次页面加载时调用该函数25次,并以这种方式进行字符串操作,这似乎有问题。

但我肯定在寻找新的建议,因为我不是这方面的专家!或者如果你做了上面的一个选项,任何答案都是有帮助的。谢谢!

执行正则表达式替换的视图帮助器将会很好并且足够快。比如:

string.gsub(/[0-9]+/, '<span style="color:red">$1</span>')