【问题标题】:Datamapper "Model.all()" method creates 3 selects and not selecting the right fieldsDatamapper“Model.all()”方法创建 3 个选择而不选择正确的字段
【发布时间】:2015-06-15 22:20:31
【问题描述】:

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

1.代码:

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

请查看执行的 sql 查询:

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

调试 - (0.000205) 选择 id, post_script_name, designer, license, category, full_name, style, weight, copyright, copyright, 987654337@, http_path, ext FROM fonts ORDER BY id

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

请帮帮我 为什么会这样?

提前谢谢你!

【问题讨论】:

  • 好的,我发现 dm-serializer 会导致 to_json 方法出现该问题。任何想法如何以正确的方式解决这个问题?

标签: ruby-on-rails ruby sinatra padrino ruby-datamapper


【解决方案1】:

解决办法是:

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

【讨论】:

    猜你喜欢
    • 2016-04-18
    • 2021-02-25
    • 1970-01-01
    • 2019-06-03
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    相关资源
    最近更新 更多