如何用空格&替换短划线?用逗号同时下划线?
我能够用逗号替换下划线,但是当我试图再次通过数组重复它时,它给出了一些时髦的结果。
控制器
def activity_by_all_city
@cities = ['Abilene_Texas','Akron_Ohio','Albuquerque_New-Mexico','Baton-Rouge_Louisiana']
end
查看
<% @cities.each do |city|%>
<%= link_to city.gsub!(/_/, ', '), 'activities-'+city.parameterize %><br>
<% end %>
答案 0 :(得分:4)
您可以使用String#tr将一组字符替换为另一组字符:
@cities.collect {|city| city.tr('-_', ' ,') }
=> ["Abilene,Texas", "Akron,Ohio", "Albuquerque,New Mexico", "Baton Rouge,Louisiana"]
以上内容将创建一个新列表,保持原始@cities
字符串不变。
如果您使用破坏性版本(String#tr!),则会对字符串进行修改,使@cities
保留已翻译的城市名称:
@cities.each {|city| city.tr!('-_', ' ,') }
=> ["Abilene,Texas", "Akron,Ohio", "Albuquerque,New Mexico", "Baton Rouge,Louisiana"]
@cities
=> ["Abilene,Texas", "Akron,Ohio", "Albuquerque,New Mexico", "Baton Rouge,Louisiana"]
(这个原则适用于所有“破坏性”方法,也是gsub!
,它们会改变它们所适用的对象。)
答案 1 :(得分:2)
尝试:
<%= link_to city.replace(city.gsub(/-/, ' ').gsub(/_/, ', ')), 'activities-'+city.parameterize %><br>
给出:
<a href="activities-albuquerque-new-mexico">Albuquerque, New Mexico</a>