使用 Devise 和 Rails Admin 对特定路由进行身份验证

2023-12-30

我使用 Rails Admin 和 Devise 来管理和用户模型。我已向用户模型添加了一列“admin”以指示其身份。

In the config/routes.rb,我安装/admin for RailsAdmin:Engine

我只想允许current_user.admin用户访问/admin,否则,将用户重定向到主页。

我怎样才能用最干净的代码实现这个?


在您的管理控制器上:

class MyAdminController < ApplicationController
  before_filter :authenticate_user!
  before_filter :require_admin
end

在您的应用程序控制器上:

class ApplicationController < ActionController::Base


  def require_admin
    unless current_user && current_user.role == 'admin'
      flash[:error] = "You are not an admin"
      redirect_to root_path
    end        
  end
end

抱歉,没有注意到它是与 Rails admin 一起使用的,您可以执行以下操作:

# in config/initializer/rails_admin.rb

RailsAdmin.config do |config|
  config.authorize_with do |controller|
    unless current_user.try(:admin?)
      flash[:error] = "You are not an admin"
      redirect_to main_app.root_path
    end
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Devise 和 Rails Admin 对特定路由进行身份验证 的相关文章

  • Facebook API 错误 100 - 无效链接

    我正在使用 Facebook API 在我的 Rails 应用程序中创建发送对话框 我只是在 Javascript 中使用 Facebook 推荐的格式 作为 HTML 中的脚本 我的问题是我得到 API Error code 100 in
  • 如何在控制器内部使用 auto_link

    在我的控制器中 我需要构建一个 JSON 对象 如何在控制器内使用 auto link 现在它错误 NoMethodError undefined method mail to for
  • 同一模型之间的两个 has_many 链接

    I have users其中有products通过 habtm 链接 该链接正在运行 我想添加一个链接user模型和product模型 以跟踪creator该产品的 当然 谁并不总是拥有该产品 但是当我写在我的user and produc
  • 如何自定义 Mailboxer 电子邮件的模板?

    它会自动发送电子邮件 其中写着 You have a new message subject You have received a new message Body Visit http example com and go to you
  • 如何在 Ruby on Rails 中不使用 eval 将字符串转换为哈希值? [复制]

    这个问题在这里已经有答案了 这里是string需要转换成hash status gt label gt Status collection gt return misc definitions project status 我们不能使用ev
  • Postgres 使用 Rails Active Record 在 IN 列表中 ORDER BY 值

    我收到按 收入 排序的 UserId 列表 一次大约 1000 个 我在 我的系统数据库 中有用户记录 但 收入 列不存在 我想从 我的系统数据库 中检索用户 按照列表中收到的排序顺序 我尝试使用 Active Record 执行以下操作
  • 如何覆盖 Ruby Ranges 的 .. 和 ... 运算符以接受 Float::INFINITY?

    我想覆盖 and Ruby 中的运算符Range 原因是 我正在处理数据库中的无限日期范围 如果你拉一个infinty从 Postgres 中取出日期时间 你会得到一个Float INFINITY在红宝石中 问题是 我无法使用Float I
  • 如何阻止与 RSpec 和 Capybara 的外部连接?

    在我的 Rails 项目中 我想编写非理想条件的测试 例如缺乏互联网连接或超时 例如 我正在使用 gem 来联系 API 并且希望确保在我的应用程序和外部 API 之间存在连接问题时能够正确处理错误 我已经可以通过用录像机制作固定装置并从
  • 我们能否知道回形针下载何时完成?

    我有一个应用程序 我需要知道用户的 Rails Paperclip 文件下载时间complete 我的应用程序设置为与 Amazon S3 交互 当用户收到完整的文件时 我需要运行 JavaScript 函数 我怎样才能做到这一点 跟踪天气
  • 如何使 Rails 3 资源预编译速度更快?

    我有一个正在运行的 Rails 3 2 1 应用程序 我正在通过 Capistrano 进行部署deploy assets它运行deploy assets precompile task 一切工作都很好 除了编译本身非常慢 我没有那么多 C
  • 请求完成时间大于 ActiveRecord 和 View 时间之和

    以下是一些示例请求完成时间 Completed 200 OK in 1054ms Views 10 8ms ActiveRecord 455 6ms Completed 200 OK in 1410ms Views 11 6ms Activ
  • 忽略 git 中的本地配置文件

    Rails 应用程序中有一些本地文件 属于我们存储库的一部分 我希望 git 忽略它们 基本上 我希望 git 忽略我对 config environments 目录和 config application rb 文件中的任何内容所做的所有
  • 获取设备中的当前用户ID

    如何使用设备获取控制器中的当前用户 ID 在我的控制器中我有这样的东西 def index me current user c User find me sheets c time sheets end 我收到一条错误消息 无法找到没有 I
  • 使用 Fetch 和 FormData API 上传多个文件

    我正在尝试使用本机Fetch https developer mozilla org en US docs Web API Fetch API and FormData https developer mozilla org en US d
  • 创建一个简单的 Rails 3 文本助手 Gem [重复]

    这个问题在这里已经有答案了 我一直在开发我的第一个 Rails 3 插件 以打包一个我喜欢在ApplicationHelper我所有的应用程序 你可以看到整个代码在 Github 上 https github com burlesona s
  • 将 Rails 变量传递给液体可以在控制台中工作,但不在视图中

    我想将哈希传递给渲染方法 当我这样做时 在我的控制台中一切正常 object Object find params id hash object object to liquid template Liquid Template parse
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个
  • 如何在 Rails 测试中测试 params 哈希?

    以下内容会生成错误 未定义的局部变量或方法 params assert equal params recipient id users one id 如何测试参数哈希 另外 你如何测试assert redirect当存在参数时 参数附加到
  • Heroku 部署错误

    在 Windows 环境中 尝试部署到 Heroku 时出现以下错误 C Ruby lib ruby gems 1 8 gems heroku 1 9 13 lib heroku commands base rb 32 in 没有这样的文件
  • 使用 Ruby aws-sdk 跟踪文件到 S3 的上传进度

    首先 我知道SO中有很多与此类似的问题 在过去的一周里 我读了大部分 如果不是全部 但我仍然无法让这项工作为我工作 我正在开发一个 Ruby on Rails 应用程序 允许用户将 mp3 文件上传到 Amazon S3 上传本身工作正常

随机推荐

  • Boost tribool 在 C++ 中导致从右到左的条件计算

    据我所知 C 在条件语句中总是从左到右计算 if A B C A首先会被评估 B第二 依此类推 然而 以下示例表现出一些奇怪的行为 include
  • 如何向基于 Visual Studio 的应用程序添加 C/C++ 语言服务?

    我正在尝试创建一个基于 Visual Studio shell 的特定于域的 IDE 我跟着走查 https learn microsoft com en us visualstudio extensibility shell walkth
  • Laravel Eloquent 选择 CASE?

    有没有在 PHP 和 Laravel Eloquent 方面有经验的人可以帮助我解决这个问题 我试图在 raw 方法中注入一个 CASE WHEN END 似乎完全被忽视了 现有的文档还没有 我尝试了几种不同的方法 但都没有成功 我正在努力
  • OpenMP 在 High Sierra LLVM 中可用吗?

    Apple 在 macOS 10 13 High Sierra 中提供的默认 LLVM 中 OpenMP 终于可用了吗 它已经在主 LLVM 中可用一年多了 问这个问题的另一种方式可能是新的 Apple LLVM 基于哪个版本的 LLVM
  • 发送方和接收方是否隐含与 MPI_BCAST 同步?

    当调用MPI BCAST时 是否有任何隐含的同步 例如 如果发送方进程要先于其他进程到达 MPI BCAST 它是否可以执行 BCAST 然后在没有任何确认的情况下继续 最近的一些测试代码如下 program test include mp
  • const 和非常量函数的重载如何工作?

    The STL充满了这样的定义 iterator begin const iterator begin const 由于返回值不参与重载决策 因此这里唯一的区别是函数是const 这是重载机制的一部分吗 编译器用于解析如下行的算法是什么 v
  • 哪个分布式缓存?

    我需要找到一种方法让两个应用程序可以使用相同的缓存 经过一些快速研究后 我们似乎需要一个分布式缓存来实现这一点 进一步谷歌搜索发现了许多解决方案 NCache http www alachisoft com ncache ncache ex
  • 如何在输入特定单词时提醒用户

    我是 Javascript 新手 正在创建我的第一个 Chrome 扩展 这实际上只是一个个人挑战 我想在用户在任何网站上键入某些单词时提醒他们 也许是 Google 或 Bing 上的搜索输入字段 或者也许是当他们输入 Facebook
  • 嵌入式 Linux 上的 QT5 eglfs(TI am355x EVM 入门套件)

    我刚刚为 ARM 交叉编译了 QT 5 2 1 并在 TI AM335x EVM 入门套件 板上使用它 我想使用eglfs平台 但不幸的是它在屏幕上显示了一些伪影 我只是制作了一个简单的程序来显示问题并捕获了我的屏幕的一些照片 该程序基本上
  • 真的很简单的Python HTTP代理吗? [复制]

    这个问题在这里已经有答案了 我到处寻找并发现了数百万个 python 代理服务器 但没有一个完全符合我的要求 我认为 s 一般来说 我对 python 有相当多的经验 但我对 HTTP 协议的深层秘密世界还很陌生 我认为可能有用的是一个非常
  • MVC-4 文件上传成功消息

    我在上传文件后显示成功消息时遇到了一些问题 我首先尝试使用 ViewBag Message 它运行良好 并在文件上传后显示成功消息 这就是我想要的 但后来我找不到一种方法 几秒钟后将该消息更改回 选择要上传的文件 以便用户了解他现在可以上传
  • 可以在 Twilio 中保存短信并安排发送吗?如果没有,我该如何完成这件事?

    我刚刚注册了 Twilio 试用帐户 我没有看到任何功能说明如何创建和保存多条短信供以后使用以及安排何时将它们发送到群组 这可能吗 或者有没有更好的软件可以做到这一点 Twilio 传道者在这里 查看您的个人资料 您的首选语言似乎是 PHP
  • “For”循环第一次迭代

    我想询问是否有一种优雅的 pythonic 方式在第一次循环迭代中执行某些函数 我能想到的唯一可能性是 first True for member in something get if first root copy member fir
  • 使用 CMake 和 GCC 4.1.2 链接到 stdc++

    我正在开发一个库 需要确保它可以使用 4 1 2 进行编译 我知道 它没有给我带来任何乐趣 因此 我在 Fedora 14 机器上下载 编译并安装了 GCC41 现在在 CMake 中我只将以下内容更改为变量 CMAKE CXX COMPI
  • JDBC 调用以数组为参数的存储过程

    我正在尝试使用 java 代码调用下面的过程 但我收到了几个错误 主要是类型转换 我想我在某个地方搞砸了 有人可以看一下吗 这是我第一次这样做 一点帮助就太好了 proc DECLARE car details tab car detail
  • 如何检查对象以查看其类型并返回强制转换的对象

    我有向其传递对象的方法 在这个方法中 我检查它的类型 并根据类型对它执行一些操作并返回一个 Long 我已经尝试了所有我能想到的方法来做到这一点 但我总是收到几个编译器错误 告诉我它需要某个对象 但得到另一个对象 有人可以向我解释我做错了什
  • .NET Parallel.Foreach 如何构造 IO 密集型操作

    比方说 我编写了一个程序 该程序应该读取给定的所有文本文件并从中生成对象列表 所以步骤是 从磁盘读取给定文件夹中所有文件的文件内容 每个文件内容创建唯一的对象 我想知道 NET 中的 Parallel ForEach 或任何其他并行结构 是
  • 如何使用 C# 任务并行库和 IProducerConsumerCollection 实现通用回调?

    我有一个向基于 Web 的 API 提交请求的组件 但必须限制这些请求 以免违反 API 的数据限制 这意味着所有请求必须通过队列来控制它们的提交速率 但它们可以 并且应该 并发执行以实现最大吞吐量 每个请求必须在将来完成时的某个时刻向调用
  • ActionBarSherlock (ABS):如何自定义操作模式关闭项的文本?

    我正在使用 ABS 版本 4 我需要简单地更改除了操作模式关闭图标之外显示的默认 完成 文本 但我真的不知道该怎么做 我认为文本需要可定制 至少有两个充分的理由 完成 并不适合所有情况 例如 取消 可能更合适 我见过一些应用程序 例如 Ga
  • 使用 Devise 和 Rails Admin 对特定路由进行身份验证

    我使用 Rails Admin 和 Devise 来管理和用户模型 我已向用户模型添加了一列 admin 以指示其身份 In the config routes rb 我安装 admin for RailsAdmin Engine 我只想允