升级到5.2.1后出现Rails_admin和rails_admin_pundit错误

时间:2018-10-09 20:19:56

标签: ruby-on-rails rails-admin pundit

let arrWithObjectsWithArr = [{
    name: 'Jon',
    age: 32,
    tags: ['driver', 'chef', 'jogger']
  },
  {
    name: 'Elise',
    age: 33,
    tags: ['best chef', 'singer', 'dancer']
  }
];

arrWithObjectsWithArr.forEach(({
  name,
  tags: [firstItemFromTags, ...restOfTags]
}) => {
  console.log(name, firstItemFromTags, restOfTags);
});

这是它在错误页面(这是在gemfile代码中)中查看的第一件事

NoMethodError at /
protected method `policy' called for #<RailsAdmin::MainController:0x007ff5e5d1a528>
Did you mean?  policies

当我尝试访问/ admin时收到此错误-没什么变化,在5.1.6中工作正常。.我没有改变policy.rb文件,我没有改变任何控制器代码,在这里没有任何变化除了gemfile更新之外,其他所有内容都可以移至rails 5.2.1

我的申请政策。

# 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

我不知道是什么原因导致了这种情况。.在Google上找不到任何内容,gem rails admin专家上次更新是在一年前。

1 个答案:

答案 0 :(得分:1)

确保您拥有

config.parent_controller = "::ApplicationController"

在您的config/initializers/rails_admin.rb

,以指示谁是父控制者。这为我解决了。