我试图在我的一个模型中覆盖as_json,部分是为了包含来自另一个模型的数据,部分是为了去除一些不必要的字段.从我所看到的这是Rails 3中的首选方法.为了保持简单,让我说我有类似的东西:
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输出.我只是弄错了语法吗?
最佳答案 这是一个错误,但没有奖品: