我有一个简单的日志应用程序,由 ruby 脚本和一个从 MongoDB 文档读取的“只读”Rails 应用程序组成。为了保持模型的一致性,它们都使用了一个定义了 Mongoid 文档的通用 gem。
我遇到的问题是在 gem 中定义的 Mongoid 文档没有得到 Kaminari 装饰。换句话说(尽可能简化)。
# 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 中执行某些操作以强制将分页应用于共享模型,但我无法偶然发现正确的解决方案。
或者,我也尝试将 Kaminari 添加为共享 gem 中的依赖项,但没有运气。