У меня есть приложение Rails 4.2.7 с rails_admin (0.8.1), pundit (1.1.0) и mongoid (5.1.4)Неопределенный метод `to_criteria 'с Rails 4.2.7, Pundit, Mongoid и RailsAdmin
Я создал кампанию scaffold и добавил authorize @campaign
в set_campaign
в CampaignController. когда я просматриваю к http://localhost:3000/campaigns/57b34dd3f5740c23d3066e43 я получаю unable to find policy
CampaignPolicy for <Campaign _id ...
Я побежал rails g pundit:policy campaign
создать CampaignPolicy и теперь показываю действие работает. Но когда я просматриваю к RailsAdmin http://localhost:3000/admin/campaign я получаю:
undefined method `to_criteria' for Campaign:Class
lib/mongoid/criteria.rb merge! method
Я «решен» подправив Scope внутри CampaignPollicy как это, но мне интересно, если есть лучшее решение,
class CampaignPolicy < ApplicationPolicy
def show?
true
end
class Scope
attr_reader :user, :scope
def initialize(user, scope)
@user = user
@scope = scope
end
def resolve
end
end
end