Ruby on rails “数据映射器”;Model.all();方法创建3个选择字段,但不选择正确的字段

Ruby on rails “数据映射器”;Model.all();方法创建3个选择字段,但不选择正确的字段,ruby-on-rails,ruby,sinatra,padrino,ruby-datamapper,Ruby On Rails,Ruby,Sinatra,Padrino,Ruby Datamapper,我已经开始在Padrino中使用Datamapper,我有一些奇怪的问题。 这些问题解释如下: 1.守则: content_type :json @fonts = Font.all(:fields=>[:id,:name,:class_name]) @fonts.to_json Datamapper执行3个查询并返回所有字段的所有结果 请参阅执行的sql查询: 调试-(0.000087)从字体中选择id,name,class\u name 调试-(0.000205)选择id,pos

我已经开始在Padrino中使用Datamapper,我有一些奇怪的问题。 这些问题解释如下:

1.守则:

 content_type :json
 @fonts = Font.all(:fields=>[:id,:name,:class_name])
 @fonts.to_json
  • Datamapper执行3个查询并返回所有字段的所有结果
  • 请参阅执行的sql查询:

    调试-(0.000087)从
    字体中选择
    id
    name
    class\u name

    调试-(0.000205)选择
    id
    post\u script\u name
    designer
    许可证
    类别
    全名
    样式
    权重
    文件名
    版权
    系统文件路径
    http\code>,
    ext
    FROM
    font
    orderby
    id

    调试-(0.000158)选择
    id
    font\u-face
    font
    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
    

    好的,我发现dm serializer导致了to_json方法的问题。有没有想过如何以正确的方式解决这个问题?