Docs 菜单

Docs 主页Mongoid

Rails 集成

在此页面上

  • 配置
  • 模型预加载
  • 异常
  • 控制器运行时仪表
  • Rake 任务

Mongoid 可无缝集成到 Ruby on Rails 应用程序中。 本页介绍在 Rails 应用程序上下文中自动启用的功能以及可以手动启用的 Rails 相关功能。

您可以通过访问 config.mongoid 在 application.rb中设置 Mongoid 配置选项以及其他特定于 Rails 环境的选项。 此处设置的选项将覆盖config/mongoid.yml中设置的选项。

module MyApplication
class Application < Rails::Application
config.mongoid.logger = Logger.new(STDERR, :warn)
end
end

为了正确设置单collection继承,Mongoid 需要在开发模式下的每个请求之前预加载所有模型。这可能会变慢,因此如果您不使用任何继承,建议您关闭此功能。

config.mongoid.preload_models = false

与 ActiveRecord 类似,Mongoid 将 Rails 配置为自动将某些异常转换为众所周知的 HTTP 状态代码,如下所示:

Mongoid::Errors::DocumentNotFound : 404
Mongoid::Errors::Validations : 422

Mongoid 向 Rails 的检测事件process_action.action_controller提供执行 MongoDB 命令(通过驱动程序命令监控订阅获取)所花费的时间。 该时间与查看时间一起记录,如下所示:

Completed 200 OK in 2739ms (Views: 12.6ms | MongoDB: 0.2ms)

此日志记录是自动设置的。

注意:所示时间是 MongoDB cluster 执行 MongoDB 操作所花费的时间,加上通过网络发送命令和从 MongoDB 接收结果所花费的时间。它不包括驱动程序和 Mongoid 生成查询或类型转换以及以其他方式处理结果所花费的时间。

在 Rails 环境中使用 Mongoid 时,Mongoid 提供以下 rake 任务:

  • db:create:仅出于依赖目的而存在,实际上不执行任何操作。

  • db:create_indexes:从模型中读取所有索引定义,并尝试在数据库中创建它们。

  • db:remove_indexes:从模型中读取所有二级索引定义。

  • db:drop:删除数据库中除系统集合之外的所有集合。

  • db:migrate:仅出于依赖目的而存在,实际上不执行任何操作。

  • db:purge:从数据库中删除所有数据,包括索引。 从 3.1.0 开始

  • db:schema:load:仅出于框架依赖目的而存在,实际上不执行任何操作。

  • db:seed:从 db/seeds.rb 为数据库播种

  • db:setup:创建索引并为数据库播种。

  • db:test:prepare:仅出于框架依赖目的而存在,实际上不执行任何操作。

←  配置教程 →