Active Admin 和 Apartment Gem

2024-01-06

我是 Active Admin 的新手,但从目前为止我所看到的情况来看,我认为这很容易实现。

我有一个带有公寓宝石的应用程序来添加多租户。

我正在向我的应用程序添加活动管理员。 Apartment 使用 PostgreSQL 模式来隔离数据。例如,默认情况下,公寓中的模型有一个“公共”租户,除非您调用类似的内容Apartment::Tenant.switch!('abc').

在我的应用程序中我的User and Company模型在公共租户中,其他一切都在租户中。因此,开箱即用的 Active Admin 工作正常,只是租户模型不显示记录 - 正如它们应该的那样。

我做了一些修改并手动添加Apartment::Tenant.switch!('abc')我的 AA 模型文件之一,效果非常好。这是一个理想的解决方案:

  • 当。。。的时候AdminUser租户中的日志被设置为默认值(例如第一个租户)
  • 在每个租户模型上,可能有一个选择菜单,用于提交参数 (?tenant=abc),然后更改租户
  • 活跃租户可能持续存在AdminUser会话存储,以便您可以使用相同的租户数据,直到需要切换为止。

我想我自己可以很容易地做到这一点,但我想看看是否有任何我需要解决的活动管理特定问题,例如:

  • AA 是否有相当于应用程序控制器的功能?最好将租户切换逻辑保留在其中,而不是主要逻辑。
  • 替代 AA 设计AdminUser有一个单独的会话变量存储可用吗?

任何建议将不胜感激 - 一旦我解决了问题,我会将我的最终解决方案/代码发布回这篇文章。


AA 是否有相当于应用程序控制器的功能?最好将租户切换逻辑保留在其中,而不是主要逻辑。

确实,有一个 ActiveAdmin::BaseController,但是 gem 作者没有谈论使用它进行定制,不知道为什么。对于您正在谈论的逻辑来说,这似乎是一个好地方。

我以前从未需要修改它,但是这是某人的博客文章 https://viget.com/extend/8-insanely-useful-activeadmin-customizations.

备用 AA Devise AdminUser 有一个单独的会话变量存储可用,对吧?

嗯。 Devise 使用 Warden 进行会话管理,它支持多个用户“范围”同时登录 https://github.com/hassox/warden/wiki/Scopes单独的会话数据 https://github.com/hassox/warden/wiki/Authenticated-session-data,如果我没有记错的话,当我仔细研究代码时,Warden 将单独的会话数据放在同一个 cookie 中的不同键中。不确定这是否是您的意思,但我验证了在我当前使用 ActiveAdmin 的 Rails 项目中,它绝对不会为用户和管理员使用不同的 cookie。

不是一个明确的答案,但移动球!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Active Admin 和 Apartment Gem 的相关文章

  • Rails/Nginx 中的超时——最佳实践

    我正在开发一个应该在 Nginx 服务器上运行的 Rails 应用程序 根据输入 应用程序可能需要很长时间来处理请求 或者在出现错误时挂起 因此我想防止进程永远运行 除了确保客户端收到超时信号的 Nginx 配置之外 我想我可能仍然需要确保
  • 如何加载页面特定的rails 4 js文件?

    我正在阅读资产管道的 Rails 指南文档 它指出 CoffeeScript 页面特定生成的文件 如果清单上有 require tree 指令 则默认情况下可供用户使用 这对我不起作用我必须包括这个 在特定控制器上 我缺少什么 资产管道会将
  • Ruby/Rails 集合到集合

    我有两个表与一个连接表连接 这只是伪代码 Library Book LibraryBooks 我需要做的是 如果我有一个图书馆的 id 我想获取该图书馆拥有的所有书籍所在的所有图书馆 因此 如果我有图书馆 1 图书馆 1 中有书籍 A 和
  • 资产管道:仅对一个控制器使用 javascript 文件

    在 Ruby on Rails v4 中 我希望仅为特定控制器加载一个 js 文件 或一组 js 文件 执行此操作的标准方法是什么 在 application js 中有 require tree 线 我假设这需要删除 所以我并不总是加载每
  • 从父应用程序重新打开 Rails 3 引擎类

    就目前而言 您无法重新打开引擎中包含的引擎类 app只需在父应用程序的目录中添加相同的类即可 app目录 例如 my engine app controllers users controller rb my app app control
  • Rails/Ruby 合并两个具有相同键、不同值的哈希值

    我有两个想要合并的哈希值 它们看起来像这样 Hello gt 3 Hi gt 43 Hola gt 43 第二个哈希看起来像 Hello gt 4 Hi gt 2 Bonjour gt 2 我想合并这两个哈希数组 使结果看起来像 Hello
  • Rails 资源单数还是复数?

    我有一条搜索路线 我想将其设为单数 但是当我指定单数路线时 它仍然会生成复数控制器路线 这是应该的样子吗 resource search Gives me search POST search format action gt create
  • Ruby on Rails 服务器在 HTTPS POST 请求期间崩溃

    我正在尝试与你沟通城市飞艇API http urbanairship com docs push html broadcast使用 ROR Web 应用程序 在我的控制器中 我有以下代码 require net http require n
  • Rails 3:如何让用户在表单中至少选择一个复选框?

    我有一个表单 用户在提交表单之前必须选中至少一个复选框 有没有任何插件可以处理这个问题或者jquery可以应用于我的表单 不幸的是我完全是一个 jquery 菜鸟 上面的所有答案都显示了如何在客户端执行此操作 这确实可能更好 正如您的问题标
  • 比较 rspec 自定义 ActiveRecord::RecordInvalid 错误消息

    模型中有以下内容 validates uniqueness of title if proc item item item type tag case sensitive false message I18n t errors key va
  • RSpec:如何在静态方法上使用should_receive?

    我在 lib gcm rb 中有一个模块 require net http require uri module GCM def self dispatch message reg ids data url URI parse GCM UR
  • Rails 3.2:用 json 序列化中的空字符串替换 null 值

    我正在使用 Rails 3 2序列化 http www simonecarletti com blog 2010 04 inside ruby on rails serializing ruby objects with json 将 ru
  • 如何准确地衡量加载模型所需的时间?

    我想对加载模块 find by id 234 调用 所需的时间进行基准测试 另外 我如何跟踪加载页面所需的时间 我知道我在运行 Rails 服务器时得到此信息 但这是在调试模式下 我想要生产速度基准 可能吗 为了快速检查 我强烈建议检查基准
  • rake db 问题:迁移 -

    我无法为 Ruby on Rails 设置 MySQL 数据库 设置数据库并确保 config database yml 文件匹配后 我遇到了以下错误消息 U Rails alpha gt rake db migrate trace in
  • 如何根据域名更改视图格式

    我想知道是否有任何方法可以根据域名更改相同 Rails 应用程序的视图格式 例如 www domain com gt respond to format html api domain com gt respond to format xm
  • Ruby on Rails 两个同时创建两个不同控制器的操作

    我有一个线程控制器和消息控制器 线程 has many 消息 用户单击发送后 我将数据发送到线程控制器以创建线程 我想做到这一点 线程控制器 rb def create if thread save send data into messa
  • RSpec 无法从 Factorygirl 中找到工厂

    我将在 Rails3 项目中将 RSpec 与 Factory Girl 一起使用 我已经安装了 Factory Girl 但它找不到工厂我有这个错误 Failure Error Factory build user should be v
  • 如何在 mongoid 中使用 or 条件进行查询

    如何在 Mongoid 中使用 or 条件进行查询 这是 OR 在 mongoid 中查询 如果你想要像下面这样的查询 select from user where id 10 or name hitesh 在带有 mongoid 的 Ra
  • 更改 en.yml 文件中的属性名称不起作用

    我更改了 ruby on Rails 项目中 en yml 文件中的属性名称 按钮工作正常 但字段属性并没有改变 这是我的模型 class Enr AffordableWarmth lt ActiveRecord Base self tab
  • 如何在 Rails 中获取“应用程序跟踪”而不是完整的详细回溯?

    在开发环境的Rails默认错误页面中 您可以查看三个回溯 1 Application Trace 2 Framework Trace和3 Full Trace 但是如何在 Rails 控制器中获取 应用程序跟踪 完整跟踪 exception

随机推荐

  • 如何在 Debian Wheezy armel 上安装 g++ 4.9?

    我的 Debian 7 armel 嵌入式系统目前有 g 4 6 我想升级到 g 4 9 以使用新的 C 11 功能 我怎么做 我当前的sources list内容是 deb http security debian org wheezy
  • Spreadsheet_excel_reader 日期格式[重复]

    这个问题在这里已经有答案了 我正在使用电子表格 excel reader 读取 php 上的 xls 文件并将数据插入到 oracle 数据库中 我正在使用下面的代码 filename test xls reader new Spreads
  • EF 3.x 中最简单的分组依据失败,并显示“不支持客户端分组依据”

    目前正在使用 EF Core 版本 3 1 1 进行测试 当我搜索时 我找到了对此问题的引用 但我没有看到任何关于为什么会发生这种情况的明确答案 以及它是否是一个将被修复的错误或是否是预期的行为 这就像看起来一样简单 BatchReques
  • 通过 WordPress 管理员不断收到此控制台错误

    未捕获 承诺中 message 侦听器通过 r 指示异步响应 在收到响应之前关闭了通道 消息 侦听器通过返回 true 指示异步响应 但消息通道在响应之前关闭收到 原型 对象 Promise then 异步 匿名 geolocation s
  • 从代码隐藏访问 asp:content

    好吧 我是一名经验丰富的 Web 开发人员 但有时 ASP Net 会欺骗我 我在 asp net 中有一个母版页 然后我有一个基于该母版页 home aspx 的页面 现在在 home aspx cs 中 我想访问 asp content
  • 停止自动隐藏托盘通知图标

    每当我的 Windows 窗体应用程序第一次运行时 托盘图标保持可见状态大约不到一分钟 然后自动隐藏 我该怎么做才能让它粘住而不是自动隐藏 我尝试搜索 但找不到任何有用的信息 看来这是 Windows 7 及更高版本的默认行为 我想知道是否
  • 如何在 Amazon EC2 Ubuntu 服务器上设置 GUI

    我正在使用亚马逊 Ubuntu EC2 实例 它只有一个命令行界面 我想为该服务器设置 UI 以使用远程桌面工具进行访问 有没有办法将GUI应用到EC2实例 这是可以做到的 以下是设置 GUI 的步骤 创建新用户 使用密码登录 sudo u
  • 使用Java注解的ViewResolver

    是否有可能在Spring http en wikipedia org wiki Spring Framework3 1 1 使用Java注释配置视图解析器 我已经使用 Java 注释完成了所有配置 但我陷入困境视图解析器 Code pack
  • 如何使用 BigDecimal 显示始终保留 2 位小数的数字?

    我在用大十进制以获得一些价格值 需求是这样的 无论我们从数据库中获取什么值 显示的值都应该有2个小数点 Eg 获取的值为 1 应显示为 1 00获取的值为 1 7823 应显示为 1 78 我在用setScale 2 BigDecimal
  • 如何在javascript中匹配由已知前缀和后缀包围的子字符串

    给定一个字符串 例如 示例字符串与要匹配的预期嵌套字符串 如何隔离仅知道其前缀和后缀的子字符串 例如之间intended and to match 使用正则表达式非捕获括号 https developer mozilla org en US
  • 如何检测 UIImage 中的 alpha 像素

    如果用户触摸位于 alpha 像素 透明 上 我尝试将 hitTest 传递给我下面的元素 我不知道的是如何确定 CGPoint 20 20 上的像素是否是完整的 alpha iOS 4 谢谢 奥 可以获取像素RGBA 然后获取alpha
  • 将请求从servlet转发到jsp

    我有一个小型应用程序 HTML 表单 作为控制器的 servlet 和 jsp 文件 我尝试弄清楚为什么我无法将请求从 servlet 转发到 jsp 文件 问题是从 html 提交后 显示 HTTP Status 404 申请流程 从 h
  • redshift select unique 返回重复值

    我有一个数据库 其中每个对象属性都存储在单独的行中 附加的查询不会在 redshift 数据库中返回不同的值 但在任何 mysql 兼容数据库中测试时可以按预期工作 SELECT DISTINCT distinct value FROM S
  • 如何确定渲染 HTML 页面需要多长时间?

    我有一个大页面 其中有一个大 HTML 表格 在 Internet Explorer 中 渲染内容需要很长时间 可能需要 10 15 秒来渲染 有没有一种方法可以使用 JavaScript 或其他方法来确定页面何时开始渲染以及何时完全完成渲
  • 读取 .config 文件

    目前我有一个名为 router js 的文件 设置如下 var Server require mongodb Server var MongoDB require mongodb Db var dbPort 31979 var dbHost
  • “org.eclipse.jdt.launching.IVMInstall.getLibraryLocations()”的问题

    当我尝试在 Eclipse 中运行 Java 程序时 出现以下错误 在 启动 ConvertExcelToJSON 期间发生内部错误 无法调用 org eclipse jdt launching IVMInstall getLibraryL
  • 将 LEFT OUTER JOIN 查询转换为 Ecto

    我不知道如何将 SQL 语句转换为 Ecto 凤凰城设置 mix phx gen html Location Country countries name mix phx gen html Location FederalState fed
  • 在 RecyclerView 本身而不是项目上设置 OnClickListener

    我想设置一个OnClickListener on a RecyclerView 不在其物品上以便当用户点击时触发点击事件RecyclerView 即使它是空的或装满了物品 我正在使用MVVM I tried mRecyclerView se
  • 为与我们的服务器交互的 chrome 扩展实现 google oauth2

    想要什么 一个chrome扩展 它使用google ooauth2 0登录扩展 并使用访问令牌将他的操作数据安全地发送到我的服务器 我从访问令牌获取用户详细信息并保存他的操作 服务器在php中实现 我做了什么 使用重定向 URL 注册 Go
  • Active Admin 和 Apartment Gem

    我是 Active Admin 的新手 但从目前为止我所看到的情况来看 我认为这很容易实现 我有一个带有公寓宝石的应用程序来添加多租户 我正在向我的应用程序添加活动管理员 Apartment 使用 PostgreSQL 模式来隔离数据 例如