簡體   English   中英

如何從Ruby on Rails輸出JSON?

[英]How do you output JSON from Ruby on Rails?

我希望有一個通過AJAX創建/更新的模型。 你是如何在Ruby on Rails中做到這一點的?

另外,更具體地說:如何在RoR中輸出JSON?

def create
  response = {:success => false}
  @source = Source.new(params[:source])
  if @source.save
    response.success = true
  end
  render :json => response.to_json
end

您需要做的就是使用對象調用render:json,如下所示:

render :json => my_object

對於大多數對象,這只會起作用。 如果它是一個ActiveRecord對象,請務必查看as_json以了解其工作原理。 對於上面說明的情況,您的哈希將轉換為json並返回。

但是,您確實有錯誤:您無法通過response.success訪問成功密鑰 - 您應該執行響應[:success]

jimothy的解決方案非常好,但我認為從長遠來看它不具備可擴展性。 Rails旨在成為模型,視圖和控制器框架。 現在,JSON被默認導軌中的視圖所欺騙。 然而,有一個名為RABL的偉大項目允許JSON視圖。 我已經寫了一些論據,為什么我認為這是一個很好的選擇,以及如何快速啟動和運行它。 看看這對你有用: http//blog.dcxn.com/2011/06/22/rails-json-templates-through-rabl/

@source = Source.new(params[:source])

respond_to do | f |
  f.html {
    # do stuff to populate your html view
    # maybe nothing at all because @source is set
  }

  f.any(:xml, :json) { 
    render request.format.to_sym => @source 
  }
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM