Datamapper "Model.all()" 方法创建 3 个选择但未选择正确的字段

Datamapper "Model.all()" method creates 3 selects and not selecting the right fields

我已经开始将 Datamapper 与 Padrino 一起使用,但我遇到了一些奇怪的问题。 这些问题解释如下:

1.The代码:

 content_type :json
 @fonts = Font.all(:fields=>[:id,:name,:class_name])
 @fonts.to_json
  1. Datamapper 执行了 3 个查询,return 我得到所有字段的所有结果。

请查看执行的 sql 个查询:

DEBUG - (0.000087) SELECT id, name, class_name FROM fonts ORDER BY id

调试 - (0.000205) SELECT id, post_script_name, designer, license, category, full_name , style, weight, filename, copyright, system_file_path, http_path, ext FROM fonts ORDER BY id

DEBUG - (0.000158) SELECT id, font_face FROM fonts ORDER BY id

请帮助我 为什么会这样?

提前致谢!

解决方法是:

 content_type :json
 fields_to_select = [:id,:name,:class_name]
 @fonts = Font.all(:fields => fields_to_select).to_json(:only=> fields_to_select)
 @fonts