我有以下puppet示例模板:
{ "servers" : [ { "port" : 9200,"host" : "localhost","queries" : [ <% @markets.each do |market| -%> { "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],"obj" : "solr/market_<%= market %>:type=queryResultCache,id=org.apache.solr.search.LRUCache","attr" : [ "hits","hitratio" ] },<% end -%> ],"numQueryThreads" : 2 } ],}
将它应用于市场= [‘英国’,’FR’,’IT’],我得到以下结果:
{ "servers" : [ { "port" : 9200,"queries" : [ { "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],"obj" : "solr/market_UK:type=queryResultCache,{ "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],"obj" : "solr/market_FR:type=queryResultCache,"obj" : "solr/market_IT:type=queryResultCache,],}
问题是最后一个逗号,这使得它成为无效的solr配置.
而不是应用市场.我可以使用market.map和join(‘,’).
但在这种情况下如何使用地图?
我可以使用如下地图:
<%= @markets.map{ |market| "hello_"+market }.join(',') -%>
这会打印hello_UK,hello_FR,hello_IT(注意我们在hello_IT之后没有逗号),
但我需要这样的东西:
{ "servers" : [ { "port" : 9200,"queries" : [ <% @markets.map |market| -%> { "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],<% }.join(',') -%> ],}
这不起作用.
解决方法
原文地址:https://www.jb51.cc/ruby/268710.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。