ruby スクリプトと、MongoDB ドキュメントから読み取る「読み取り専用」の Rails アプリケーションで構成される単純なロギング アプリケーションがあります。モデルの一貫性を保つために、両方とも Mongoid ドキュメントが定義されている共通の gem を使用します。
私が抱えている問題は、gem で定義されている Mongoid ドキュメントがカミナリ装飾を取得していないことです。言い換えれば(可能な限り単純化されています)。
# User is a Mongoid document defined in the Rails app (i.e. standard behavior)
require 'kaminari'
class UsersController < ApplicationController
def index
User.page(params[:pg]) # works great
end
end
しかし
# SharedLogging::LogEntry is a Mongoid document defined in a separate gem
require 'kaminari'
class LogEntriesController < ApplicationController
def index
SharedLogging::LogEntry.page(params[:pg]) # undefined method 'page' for ...
end
end
解決策は /config/initializers/kaminari_config.rb で何かをして、ページネーションを共有モデルに強制的に適用することだと思いますが、正しい解決策に出くわすことができませんでした。
別の方法として、共有 gem の依存関係として Kaminari を追加しようとしましたが、うまくいきませんでした。