ruby - 使用实例方法扩展我所有的 Mongoid 文档

标签 ruby mongodb sinatra mongoid

我想用实例方法扩展所有我的Mongoid::Document。与其制作一个模块并将其包含到每个我想扩展的 Mongoid::Document 中,不如有另一种方法。

例如,对于 ruby​​ 类 Array,我会简单地重新打开这个类并添加我想要的方法:

class Array
  def my_new_method
    #....
  end
end

但是对于 Mongoid::Document 我该怎么做呢?

最佳答案

我会这样做

module Mongoid::Document
    def self.validate
        ...
    end
end

但是,我会避免打开外部模块(即使你这看起来)是 ruby​​ 社区中常见的事情。反对显式包含您自己的模块的原因是什么?

关于ruby - 使用实例方法扩展我所有的 Mongoid 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15037938/

相关文章:

ruby - require_relative 和实用方法

ruby-on-rails - 未定义的方法包括?对于零 :NilClass

ruby-on-rails - 使用 Grape(或 Sinatra)实现超媒体驱动的 API

ruby - 无法在 Ubuntu 中访问 Docker 的暴露端口

ruby - 正则表达式:如何在每个 "="之后匹配第二个空格

ruby-on-rails - 如何在运行 "auto-build"和 'development' 模式时加载不同的 CSS 样式表文件到 'production'?

javascript - 使用 mongoose 在 mongodb 中加载和保存文档

javascript - 带总和的 Mongo 聚合

javascript - 如何使用Express和MongoDB将json从nodejs服务器发送到客户端js文件

concurrency - Sinatra + websocket + 赛璐珞