在rails controlelr中将文本呈现为json响应的问题

时间:2016-08-04 10:13:17

标签: ruby-on-rails json

我正在尝试从我的应用程序中的方法返回json

继承人我拥有的

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

但是我得到了DoubleRenderError。返回的是这个:

(£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)

是因为它在每个方法中吗?

由于

1 个答案:

答案 0 :(得分:0)

是的,这是因为您使用render的次数与doc.css(".secondary-text")中的对象数一样多。 Render每个范围只能使用一次。

如果你想渲染整个集合,你应该这样做:

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