【发布时间】:2012-08-26 17:44:18
【问题描述】:
我想创建一个 gem,为我的模型添加一些功能。如何为 Mongoid 模型定义自定义关键字?例如:
class Book
include Mongoid::Document
has_my_awesome_functionality
end
【问题讨论】:
标签: ruby-on-rails ruby gem mongoid mongoid3
我想创建一个 gem,为我的模型添加一些功能。如何为 Mongoid 模型定义自定义关键字?例如:
class Book
include Mongoid::Document
has_my_awesome_functionality
end
【问题讨论】:
标签: ruby-on-rails ruby gem mongoid mongoid3
如果您有一个名为 foobar 的 gem,您可以将以下内容放入您的 gem 的初始化程序中,或者放在一个单独的文件中(通常称为 railtie.rb[,只要确保它正在加载]):
require 'foobar'
require 'rails'
class FooBar
class Railtie < Rails::Railtie
config.before_initialize do
::Mongoid::Document.module_eval do
def self.included(base)
base.extend FooBar::MongoidExtension
end
end
end if defined?(Mongoid)
end
您的扩展程序可能如下所示:
module Foobar::MongoidExtension
def has_my_awesome_functionality
# logic here
end
end
【讨论】: