2016-08-04 9 views
0

Ich versuche json von meiner Methode in meiner appProbleme Text in json Antwort in Schienen Rendering controlelr

Heres zurückzukehren, was ich habe

doc.css(".secondary-text").each do |t| 
    price1 = t.text 
    respond_to do |format| 
     format.json { render :json => {:testing => price1}} 
    end 
end 

aber ich bin DoubleRenderError bekommen. Was zurückgegeben wird, ist dies:

(£28.50 Ticket + £4.00 Fees) 
(£35.00 Ticket + £5.25 Fees) 
(£22.50 Ticket + £3.50 Fees) 
(£35.00 Ticket + £5.25 Fees) 
(£22.50 Ticket + £3.50 Fees) 

Ist es, weil es innerhalb der einzelnen Methode?

Dank

+1

_Ist es, weil seine in der jeweiligen Methode _ - ja? –

Antwort

0

Ja, es ist, weil Sie verwenden sind render so oft wie viele Objekte in doc.css(".secondary-text") vorhanden. Render kann nur einmal pro Bereich verwendet werden.

Wenn Sie ganze Sammlung machen möchten, sollten Sie so etwas tun:

collection = doc.css(".secondary-text").each.inject([]) do |collection, t| 
    collection << t.text 
    collection 
end 

respond_to do |format| 
    format.json { render json: { collection: collection } } 
end