【问题标题】:How to compare and substitute strings in Ruby on Rails?如何在 Ruby on Rails 中比较和替换字符串?
【发布时间】:2015-12-13 19:29:23
【问题描述】:

尝试在 Ruby on Rails 中构建一个准系统概念,该概念将接受一个字符串,映射该字符串中的每个单词,进行比较,然后在与相关数据库中的预定义字符串匹配时替换该单词。

例如:用户在文本字段中输入“lol 和 brb 是什么意思?”点击提交按钮。该动作返回相同的文本,“lol”和“brb”更改为“laughing out loud”和“be right back”。

到目前为止,我有一个用于将字符串存储在数据库中的用户输入的 Post 模型和表。

我有一个 Acronym 模型和表,其中“lol”和“brb”存储在数据库中,外键引用 Acronym_Translate 模型和表,其中“大声笑”和“马上回来”引用“lol”和“brb”。

如何将 Post 模型/表连接到 Acronym 模型/表,以便比较 Post 中的字符串并用 Acronym 模型/表中的字符串替换?什么命令可以实现这样的功能?会gsub!方法在这里有效吗?

任何帮助将不胜感激!

【问题讨论】:

    标签: ruby-on-rails-4 relational-database string-comparison string-substitution


    【解决方案1】:

    您确定要将 Post 表连接到 Acronym 表吗?这意味着您必须识别并保留帖子中每个首字母缩略词实例的记录。

    您可以使用多对多关系来执行此操作,或者如果您想存储有关每个首字母缩略词出现的额外数据,您应该创建一个名为 AcronymPost 的链接表,并在 Post 和 Acronym 之间使用多对多关系。当你解析一个帖子的值时,当你在帖子中识别出一个首字母缩写词时,你必须将它记录在数据库中,然后使用 gsub 将帖子值替换为首字母缩写词。

    您可以遍历您的首字母缩写词表并使用 (string).include?检查它是否出现在帖子中的方法。最后,您可以使用 gsub 命令将首字母缩写词替换为其翻译。

    【讨论】:

    • 谢谢hypern!我将考虑您的建议并尝试实施它们以获得预期的结果。很快就会更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 2019-06-20
    相关资源
    最近更新 更多