我正在开发一个使用Ruby和Sinatra发布Web服务的项目。我遇到的问题是我无法弄清楚如何正确地序列化数组。我有两条路线。
get '/Post' do
postId= params[:id]
my_post = Post.new(BSON::ObjectId(postId))
return my_post.to_json() #runs the to_json method in post
end
get '/SourcePosts' do
sourceId = params[:source]
my_source = Source.new(BSON::ObjectId(sourceId)) #returns an array of Posts
return my_source.get_posts.to_json() #ignores the to_json method in post
end
第一个Post
按预期工作,调用我的自定义to_json方法,该方法省略了延迟加载的属性。第二个SourcePosts
忽略我的覆盖并转储所有内容,包括需要加载数据库dip的属性。我的问题:在将数组序列化为JSON时,如何调用我的方法或以其他方式忽略昂贵的属性?
答案 0 :(得分:0)
问题是模型类中有一个遗留require 'active_support/all'
,它干扰了数组序列化。