NoMethodError at /
protected method `policy' called for #<RailsAdmin::MainController:0x007ff5e5d1a528>
Did you mean? policies
Вот первое, на что он смотрит на странице ошибок (это в коде gemfile)
# This method is called to find authorization policy
def policy(record)
begin
@controller.policy(record)
rescue ::Pundit::NotDefinedError
::ApplicationPolicy.new(@controller.send(:pundit_user), record)
end
end
private :policy
Получение этой ошибки при попытке посетить / admin - ничего не изменилось, работалонормально в 5.1.6. Я не изменил файл policy.rb, я не изменил код контроллера, ничего не изменилось, кроме обновления gemfile для перехода на rails 5.2.1
Моя политика в отношении приложений ..
class ApplicationPolicy
attr_reader :user, :record
def initialize(user, record)
@user = user
@record = record
end
def index?
false
end
def show?
scope.where(:id => record.id).exists?
end
def create?
false
end
def new?
create?
end
def update?
false
end
def edit?
update?
end
def destroy?
false
end
def scope
Pundit.policy_scope!(user, record.class)
end
class Scope
attr_reader :user, :scope
def initialize(user, scope)
@user = user
@scope = scope
end
def resolve
scope
end
end
def rails_admin?(action)
case action
when :dashboard
@user.admin?
when :index
@user.admin?
when :show
@user.admin?
when :new
@user.admin?
when :edit
@user.admin?
when :destroy
@user.admin?
when :export
@user.admin?
when :history
@user.admin?
when :show_in_app
@user.admin?
else
raise ::Pundit::NotDefinedError, "unable to find policy #{action} for #{record}."
end
end
end
Я не знаю, что послужило причиной этого ... не могу найти что-либо в Google, а администратор gem rails последний раз обновлялся год назад.