Ruby on rails 如何使用迭代修改数组中的字符串

Ruby on rails 如何使用迭代修改数组中的字符串,ruby-on-rails,arrays,ruby,Ruby On Rails,Arrays,Ruby,我试图遍历一个数组@idea\u-benefit,如下所示: ["happier_customers", "happier_employees", "increased_revenue", "happier_customers", "decreased_costs", "happier_customers", "increased_revenue", ] 我需要将其元素人性化和资本化,如: ["Happier Customers", "Increased Revenue", ...] 我试过

我试图遍历一个数组
@idea\u-benefit
,如下所示:

["happier_customers", "happier_employees", "increased_revenue", "happier_customers", "decreased_costs", "happier_customers", "increased_revenue", ]
我需要将其元素人性化和资本化,如:

["Happier Customers", "Increased Revenue", ...]
我试过这个:

@idea_benefit = []
@evaluations.each do |eval|
  @idea_benefit << eval.benefit
  @idea_benefit.flatten
end
@idea_benefit.each do |benefit|
  benefit.gsub("_", " ").capitalize
end
@idea\u-benefit=[]
@评估。每个都做|评估|

@idea\u benefit您正在寻找可枚举方法
map

@idea_benefit = []
@evaluations.each do |eval|
  @idea_benefit << eval.benefit
  @idea_benefit.flatten
end

desired_output = @idea_benefit.map do |benefit|
  benefit.gsub("_", " ").capitalize
end
@idea\u-benefit=[]
@评估。每个都做|评估|

@idea\u benefit在Rails中,您可以使用和来实现它


但是我没有成功地针对单个字符串
你能用一个例子详细说明这一部分吗?这给了我一个错误
未定义的方法
gsub',用于[“更快乐的客户”、“更快乐的员工”、“增加的收入”]:数组`我假设你已经将数组展平了。我编辑了你代码的其余部分,使它更清晰。漂亮。不过,这只将第一个单词大写(即“增加的收入”而不是“增加的收入”)。有没有办法将两者都资本化?
@idea_benefit =
@evaluations.flat_map(&:benefit).map{|e| e.gsub("_", " ").capitalize}
a =  ["happier_customers", "happier_employees", "increased_revenue", "happier_customers", "decreased_costs", "happier_customers", "increased_revenue" ]
a.map { |string| string.humanize.titleize }
# => ["Happier Customers", "Happier Employees", "Increased Revenue", "Happier Customers", "Decreased Costs", "Happier Customers", "Increased Revenue"]