文档菜单
文档首页
/ / /
Mongoid
/

Rails 集成

本页内容

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

Mongoid 无缝集成到 Ruby on Rails 应用程序中。本页描述了在 Rails 应用程序环境中自动启用的功能和可手动启用的与 Rails 相关的功能。

您可以在您的application.rb 通过访问 config.mongoid 与其他 Rails 环境特定选项一起使用。mongoid:config 生成器将在 config/initializers/mongoid.rb 中创建一个初始化器,也可以用于配置 Mongoid。注意,然而,你配置在 config/mongoid.yml 中的选项将优先于其他地方的选项;建议尽可能使用 mongoid.yml 作为 Mongoid 配置的默认位置。

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

为了正确设置单集合继承,Mongoid 需要在开发模式下在每个请求之前预加载所有模型。这可能会导致速度变慢,所以如果你没有使用任何继承,建议你关闭此功能。

config.mongoid.preload_models = false

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

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

Mongoid提供执行MongoDB命令所花费的时间(通过驱动程序命令监视订阅获得)到Rails的仪表事件process_action.action_controller。这个时间与视图时间一起记录,如下所示

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

此日志配置是自动的。

注意:所指示的时间是MongoDB集群执行MongoDB操作的时间,加上在网络中发送命令和从MongoDB接收结果的时间。它不包括驱动程序和Mongoid生成查询或类型转换和其他处理结果的时间。

当在Rails环境中使用时,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:仅存在于框架依赖关系目的,实际上不做任何事情。

返回

配置