首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用activeadmin 0.4.4

无法使用activeadmin 0.4.4
EN

Stack Overflow用户
提问于 2014-07-21 07:47:11
回答 1查看 419关注 0票数 1

我做不到这件事。

我有一个带有activeadmin 0.4.4并设计工作的项目,我需要包含基于角色的对它的权限,所以我想到了CanCan。这些角色可以是“管理员”或“publisher”,管理员可以管理所有的内容,而publisher只能管理一个post部分。

我跟踪了admin/wiki/How-to-work-with-cancan-with-activeadmin,AdminUser crud (它运行得很好)和config.authentication_method = :authenticate_admin_user!对此不屑一顾。

在我的ApplicationController中,我添加了以下内容:

代码语言:javascript
复制
  # https://github.com/ryanb/cancan/wiki/exception-handling
    rescue_from CanCan::AccessDenied do |exception|
      respond_to do |format|
        format.html do
          redirect_to admin_root_path, :alert => exception.message
        end
      end
    end

  # https://github.com/ryanb/cancan/wiki/changing-defaults
    def current_ability
      @current_ability ||= Ability.new(current_admin_user)
    end

这是我的能力课:

代码语言:javascript
复制
class Ability
  include CanCan::Ability

  def initialize(user)
    user ||= AdminUser.new

    if user.role?('administrator')
      can :manage, :all
    else
      can :read, :all
    end
  end
end

“能力初始化”方法未执行。我试着放弃,-as的评论建议-放置或p,甚至新税错误,我什么也没有。我错过了什么?

我被困在这里,我也尝试过adapter,但是它正在兴起未定义的方法“授权适配器”,我不确定这是否适用于我的activeadmin版本。并且添加一个所需的active_admin/cancan_适配器会引发一个LoadError。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-22 09:15:57

最后我成功了多亏了http://makandracards.com/jan0sch/13877-rails-activeadmin-and-cancan

基本上,我需要在activeadmin注册页面中添加一个控制器块来加载它:

代码语言:javascript
复制
ActiveAdmin.register Whatever do
    #...
    controller do
      load_and_authorize_resource :except => :index

      def scoped_collection
        end_of_association_chain.accessible_by(current_ability)
      end
    end
    #...
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24860017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档