2013-10-19 38 views
1

我的Ruby代码中轨:如何报价添加到所有元素的数组中

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

给了我这样的结果:

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

但我需要这样的结局:

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

所以我需要广告'围绕单词,只采取独特的recored。我应该怎么做?

回答

1

我想这个示例是erb模板。

而且@Text在控制器定义等作为@text = 'Aclonica,Aclonica,Acme,Acme,Aclonica'

在这种情况下,你可以使用简单的旁边正则表达式:

WebFontConfig = { 
    google: { families: [<%= @text.split(',').uniq.join(',').gsub(/[^,]+/, "'\\0'").html_safe %>] } 
} 
+0

我走这:' Alegreya ',' Acme的'] – lipenco

1

这里是你可以用它来做到这一点的方法。

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

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

format(input) #=> "'Aclonica', 'Acme'" 
相关问题