モデルにいくつかの機能を追加するgemを作成したいと思います。Mongoidモデルのカスタムキーワードを定義するにはどうすればよいですか?例えば:
class Book
include Mongoid::Document
has_my_awesome_functionality
end
モデルにいくつかの機能を追加するgemを作成したいと思います。Mongoidモデルのカスタムキーワードを定義するにはどうすればよいですか?例えば:
class Book
include Mongoid::Document
has_my_awesome_functionality
end
と呼ばれるgemがある場合はfoobar
、以下を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