我按如下方式生成 JSON:
def suggest_gems
@allgems = RubyGem.where("name like ?", "%#{params[:q]}%")
respond_to do |format|
format.json { render :json => @allgems.to_json }
end
end
但是,RubyGem 表非常大,包含描述、链接和创建、更新的值。如何在生成的 JSON 中只输出名称和 ID 以减少加载时间? 谢谢。
最佳答案
你真的可以在那里清理你的 Controller 方法并像这样实现你想要的:
def suggest_gems
@allgems = RubyGem.where("name like ?", "%#{params[:q]}%")
respond_with(@allgems, :only => [:id, :name])
end
如果你在 Controller 的顶部有这个:
respond_to :json
编辑
如果你不想使用respond_to
,那么这样做:
def suggest_gems
@allgems = RubyGem.where("name like ?", "%#{params[:q]}%")
render :json => @allgems.as_json(:only => [:id, :name])
end
关于ruby-on-rails - 目录 : Filter generated JSON to certain parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13976459/