我試圖在我的一個模型中重寫as_json,部分是爲了包含來自另一個模型的數據,部分是爲了去掉一些不必要的字段。從我讀過這是Rails的3首選方法爲了簡單起見,假設我有這樣的:覆蓋as_json沒有效果?
class Country < ActiveRecord::Base
def as_json(options={})
super(
:only => [:id,:name]
)
end
end
,並在我的控制器只需
def show
respond_to do |format|
format.json { render :json => @country }
end
end
然而,無論我嘗試,輸出始終包含完整的數據,這些字段不會被「:only」子句過濾。基本上,我重寫似乎沒有踢,但如果我把它改變,比方說......
class Country < ActiveRecord::Base
def as_json(options={})
{foo: "bar"}
end
end
...我真的不得到預期的JSON輸出。我的語法錯了嗎?
順便說一句 - 我得到這個閱讀後遠http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/ – 2010-05-27 21:01:41
參見http://stackoverflow.com/questions/2556468/override-as-json-or-to-json-model-class-name – 2010-05-28 02:48:41
和https://rails.lighthouseapp.com/projects/8994/tickets/ 3087 – 2010-07-17 17:33:48