2011-03-04 47 views
1

我知道,如果我有一個像如何向rails 3網站發佈json請求?

mysite/posts/1 

一個URL回到我的默認類型是HTML。我可以通過這樣做獲得xml版本的資源

mysite/posts/1.xml 

但是,如何獲得json版本?以下應該工作?

mysite/posts/1.json 

我想問的原因是因爲它似乎沒有工作。所以我想我應該在進一步調查之前發現它是否「應該」以這種方式工作。

回答

4

你做得很對,但是如果Controller沒有設置爲響應json請求,你將不會得到任何東西。您將有一個respond_to代碼塊這樣的:

respond_to do |format| 
    format.html 
    format.xml { render :xml => @model_var.to_xml } 
    format.json { render :json => @model_var.to_json } #without this line, .json requests will go unanswered by the web server. 
end 
+1

你甚至都不需要'to_json'和'to_xml',由於Rails(Rails的,在去年的新版本)自動調用這個方法,如果傳遞的對象是不是字符串。 – MBO

+0

所以在Rails 3下它看起來是一樣的,除了在模型變量上的方法調用? –

+0

沒錯。你只需要傳遞模型(或者如果我沒有記錯,就是集合) – MBO