Ho il seguente modello burattino esempio:fantoccio template rimuovere l'ultimo comma
{
"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
} ],
}
applicandolo con mercato = [ 'UK', 'FR', 'IT'], ottengo il seguente:
{
"servers" : [ {
"port" : 9200,
"host" : "localhost",
"queries" : [
{
"outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],
"obj" : "solr/market_UK:type=queryResultCache,id=org.apache.solr.search.LRUCache",
"attr" : [ "hits","hitratio" ]
},
{
"outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],
"obj" : "solr/market_FR:type=queryResultCache,id=org.apache.solr.search.LRUCache",
"attr" : [ "hits","hitratio" ]
},
{
"outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],
"obj" : "solr/market_IT:type=queryResultCache,id=org.apache.solr.search.LRUCache",
"attr" : [ "hits","hitratio" ]
},
],
"numQueryThreads" : 2
} ],
}
Il problema è l'ultima virgola, che lo rende una configurazione di solr non valida.
Invece di applicare markets.each, potrei usare market.map e join (','). ma come usare la mappa in questo caso?
posso usare carta come segue:
<%= @markets.map{ |market| "hello_"+market }.join(',') -%>
questo sarebbe stampare hello_UK,hello_FR,hello_IT
(notare che non abbiamo una virgola dopo hello_IT), ma avrei bisogno di qualcosa di simile:
{
"servers" : [ {
"port" : 9200,
"host" : "localhost",
"queries" : [
<% @markets.map |market| -%>
{
"outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.StdOutWriter" } ],
"obj" : "solr/market_<%= market %>:type=queryResultCache,id=org.apache.solr.search.LRUCache",
"attr" : [ "hits","hitratio" ]
},
<% }.join(',') -%>
],
"numQueryThreads" : 2
} ],
}
questo non funziona.
quindi, come farlo funzionare? o come modificare il mio modello burattino per rimuovere l'ultima virgola?
Il vecchio trucco consiste nell'inserire una voce fittizia fissa dopo l'elenco che non interrompe nulla. Forse è un'opzione. – Thilo
Vorrei usare [jbuilder] (https://github.com/rails/jbuilder) – Stefan
@Stefan, come si collegherebbe jbuilder per un modello di burattini? –