我试图在我的一个模型中重写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