在rails应用程序中,我有一个动作,返回不同模型集合的json表示.它看起来像这样:
respond_to :json def index @cars = Car.all @vans = Van.all respond_with({ :cars => @cars,:vans => @vans }) end
respond_with({ :cars => @cars.to_json(:only => [:make,:model],:methods => [:full_name]),:vans => @vans })
执行上述操作后,会将“cars”的json表示转义为一个大字符串,如:
{ "cars":"[{\"car\":{\"make\":\"Ford\" ... etc "vans": [{"van":{"make":"Citreon" ... vans not escaped }
显然我正以错误的方式接近这一点.谁能指出我正确的方向?
解决方法
由于你将to_json嵌套在另一个Hash中,我认为你需要使用as_json(它返回一个Hash而不是一个String):
respond_with({ :cars => @cars.as_json(:only => [:make,:vans => @vans })