4

我在 Rails 应用程序中使用rack-mini-profiler,当它加载页面时,有时会显示一些奇怪的查询,例如:

SHOW FULL FIELDS FROM `tablename`
SHOW TABLES LIKE 'tablename'
SHOW CREATE TABLE `tablename`

他们说查询来自处理请求的控制器,来自具有

@model = Model.first()

这些查询不会在连续页面加载时执行。

为什么 rails 会生成这些奇怪的查询?

4

1 回答 1

5

您可能知道 Rails 按照惯例自动将数据库中的字段映射到模型中的属性,因此您不必在 ActiveRecord 类实现中显式定义“id”、“name”等。

为了让您的 ActiveRecord 模型生成正确的属性,Rails 必须询问您的数据库模式。Mysql 支持上述命令以检查模式。

ActiveRecord 假设您的模式在应用程序运行的生命周期内不会更改,但是,没有必要在后续请求中询问这些问题。

于 2012-08-16T00:57:44.633 回答