加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 3 ActiveAdmin.如何为具有非管理员角色

发布时间:2020-12-17 02:35:04 所属栏目:百科 来源:网络整理
导读:这就是我可以看到用户角色的方式:current_admin_user.role 我正在使用CanCan 我怎么能够 隐藏仪表板按钮 如果用户发现它的网址,则限制对仪表板的访问 – 我试过这个但是没有用. dashboard_controller.rbif current_admin_user.role == 'customer' redirect_
这就是我可以看到用户角色的方式:current_admin_user.role

我正在使用CanCan

我怎么能够

>隐藏仪表板按钮
>如果用户发现它的网址,则限制对仪表板的访问


我试过这个但是没有用.

dashboard_controller.rb
if current_admin_user.role == 'customer'
  redirect_to shipments_path
end

我在admin / dashboards.rb中试过这个

controller do
  def scoped_collection
    if current_admin_user.role == 'customer'
      redirect_to shipments_path
    end
  end
end

但为ActiveAdmin :: Dashboards生成错误的未定义方法’controller’:Module(NoMethodError)

解决方法

我想你知道这个地方: https://github.com/gregbell/active_admin/issues/501,关于仪表板的一些好主意.

使用以下内容在dashboards.rb文件中渲染部分:

ActiveAdmin::Dashboards.build do

  section 'Common',:priority => 1 do
    div do
      render 'common_dashboard'
    end
  end
  ...
end

然后从您应该在app / views / admin / dashboard / _common_dashboard.html.erb创建的partial,您可以访问current_admin_user对象:

<ul>
  <li><%= current_admin_user.role %></li>
</ul>

从dashboards.rb”’环境”’访问current_admin_user的另一种方法是使用arbre语法并制定你的仪表板部分

section "Common",:priority => 1 do 
  div do     
    if current_admin_user.role == "customer"
      li "You are a customer"
    end
  end
  '' 
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读