使用 Gem 中的类和实例方法扩展 Mongoid

发布于 2024-10-25 04:16:06 字数 359 浏览 0 评论 0原文

ActiveRecord中,我习惯这样做:

ActiveRecord::Base.send :include, MyGem::ActsAsMagnific::Base

而且它的工作方式就像一个魅力。

但我无法在 Mongoid 中获得相同的结果。我尝试了这个但没有成功:

Mongoid::Document::ClassMethods.class_eval do
  include MyGem::ActsAsMagnific::Base
end

我正在使用rails3并且我必须包含类和实例方法。

in ActiveRecord, I'm used to do this:

ActiveRecord::Base.send :include, MyGem::ActsAsMagnific::Base

And it works like a charm.

But I can't achieve the same result in Mongoid. I tried this without success:

Mongoid::Document::ClassMethods.class_eval do
  include MyGem::ActsAsMagnific::Base
end

I'm using rails3 and I've to include class and instance methods.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

行至春深 2024-11-01 04:16:06

如果您想向 Mongoid::Document 添加类方法,也许您应该尝试扩展它。
无论如何,最好使用 ActiveSupport::Concern 来完成这样的任务。
例如看这篇文章:
使用 ActiveSupport::Concert< /a>

If you want to add class methods to Mongoid::Document, maybe you should try to extend it.
In any case, it's preferable to use ActiveSupport::Concern for task like this.
For example see this post:
Using ActiveSupport::Concert

携余温的黄昏 2024-11-01 04:16:06

我无法对上面的答案发表评论,但替换 Roman 所说的新 URL 是:

I can't comment on the answer above, but the new URL that replaces the one that Roman stated is: http://pivotallabs.com/using-activesupport-concern-for-easy-mix-ins/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文