Rails Pundit ActiveAdmin:页面重定向不正确
Rails Pundit ActiveAdmin: page isn’t redirecting properly
我安装了 Activeadmin 和 Pundit gems。
在 application_controller.rb 中添加了 'include Pundit'。
定义package_policy.rb
class PackagePolicy < ApplicationPolicy
def update?
user.admin?
end
end
application_policy.rb:
class ApplicationPolicy
attr_reader :user, :record
def initialize(user, record)
@user = user
@record = record
end
def index?
false
end
def show?
false
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
end
然后我得到
page isn’t redirecting properly Firefox has detected that the server is redirecting the request for this address in a way that will never complete
在我的浏览器中。也许,它是无限循环或类似的东西。
我有一些不同的配置package_policy.rb,
但添加后 application_policy.rb - 结果在尝试登录到 Activeadmin 面板后浏览器中总是出错。
我在我的 ApplicationPolicy 中允许所有方法的所有操作。
在我为我的资源创建具有所需权限的新策略之后。
在应用策略中:
...
def index?
true
end
def show?
true
end
def create?
true
end
def new?
create?
end
def update?
true
end
def edit?
update?
end
def destroy?
true
end
...
在任何其他政策中,例如:
...
def index?
user.admin?
end
def show?
user.admin?
end
def create?
user.admin?
end
def new?
create?
end
def update?
user.admin?
end
def edit?
update?
end
def destroy?
user.admin?
end
...
我安装了 Activeadmin 和 Pundit gems。
在 application_controller.rb 中添加了 'include Pundit'。
定义package_policy.rb
class PackagePolicy < ApplicationPolicy
def update?
user.admin?
end
end
application_policy.rb:
class ApplicationPolicy
attr_reader :user, :record
def initialize(user, record)
@user = user
@record = record
end
def index?
false
end
def show?
false
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
end
然后我得到
page isn’t redirecting properly Firefox has detected that the server is redirecting the request for this address in a way that will never complete
在我的浏览器中。也许,它是无限循环或类似的东西。
我有一些不同的配置package_policy.rb, 但添加后 application_policy.rb - 结果在尝试登录到 Activeadmin 面板后浏览器中总是出错。
我在我的 ApplicationPolicy 中允许所有方法的所有操作。
在我为我的资源创建具有所需权限的新策略之后。
在应用策略中:
...
def index?
true
end
def show?
true
end
def create?
true
end
def new?
create?
end
def update?
true
end
def edit?
update?
end
def destroy?
true
end
...
在任何其他政策中,例如:
...
def index?
user.admin?
end
def show?
user.admin?
end
def create?
user.admin?
end
def new?
create?
end
def update?
user.admin?
end
def edit?
update?
end
def destroy?
user.admin?
end
...