![](/img/trans.png)
[英]How do you talk to a BerkeleyDB database from Ruby or Ruby on Rails?
[英]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.