1

我在rails中的红宝石代码:

 WebFontConfig = {
          google: { families: [<%= @text %>] }
        }

给我这样的结果:

 WebFontConfig = {
          google: { families: [Aclonica,Aclonica,Acme,Acme,Aclonica] }
        }

但我需要这样的结果:

  WebFontConfig = {
              google: { families: ['Aclonica','Acme'] }
            }

所以我需要广告'围绕单词并且只记录独特的记录。我该怎么做?

4

2 回答 2

1

我猜这个样本是 erb 模板。

并且@text 在控制器中定义为@text = 'Aclonica,Aclonica,Acme,Acme,Aclonica'

在这种情况下,您可以使用下一个简单的正则表达式:

WebFontConfig = {
  google: { families: [<%= @text.split(',').uniq.join(',').gsub(/[^,]+/, "'\\0'").html_safe %>] }
}
于 2013-10-19T13:00:08.767 回答
1

这是您可以用来执行此操作的方法。

input = "Aclonica,Aclonica,Acme,Acme,Aclonica"

def format(text_string = "")
  text_string
    .split(",")
    .uniq
    .map { |string| "'" + string + "'" }
    .join(", ")
end

format(input) #=> "'Aclonica', 'Acme'"
于 2013-10-19T14:50:29.377 回答