当前位置:  开发笔记 > 编程语言 > 正文

ActiveRecord在生产中运行不同的查询?

如何解决《ActiveRecord在生产中运行不同的查询?》经验,为你挑选了1个好方法。

我有一个类层次结构,如下所示:

class Post < ActiveRecord::Base; end
class Project < Post; end
class ProjectDesignWall < Project; end

有一个控制器可以像这样获取数据:

@projects = Project.find(:all, :include => [:project_image_photos,:user])

development,这将直接从日志运行以下查询:

SELECT * FROM `posts` WHERE ( (`posts`.`type` = 'Project' ) ) ORDER BY originally_created_at DESC

但是,只要它在production模式下运行,即使使用相同的数据库和数据,也会产生以下查询:

SELECT * FROM `posts` WHERE ( (`posts`.`type` = 'Project' OR `posts`.`type` = 'ProjectDesignWall' ) ) ORDER BY originally_created_at DESC

有谁知道为什么会这样,有没有办法让它至少表现得一致,如果没有完全解决问题?



1> Ryan Bigg..:

因为在生产中,所有类都会立即加载.当所有类都加载时,它意识到ProjectDesignWall是Project的子类,因此收集了所有类.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有