我正在尝试在我的一个模型中重写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输出,那么我只是语法写错了吗?