如何以编程方式列出 Rails 中的所有控制器

2024-03-01

我正在尝试构建一个 RESTful 应用程序来实际管理多种可配置对象,因此有大量的“资源”类型,因此有很多控制器。我仍处于 POC 阶段,所以如果我可以在第一个导航页面中显示所有控制器,那就太好了,那么有什么简单的方法(可编程)可以做到这一点吗?


在 Rails 3.1+ 中:

Rails.application.routes

如果您的routes.rb 文件中有它们的路径,这将为您提供所有控制器、操作及其路线。

例如:

routes= Rails.application.routes.routes.map do |route|
  {alias: route.name, path: route.path, controller: route.defaults[:controller], action: route.defaults[:action]}
end

更新: 对于 Rails 3.2,Journal 引擎路径发生了变化,因此代码变为:

routes= Rails.application.routes.routes.map do |route|
  {alias: route.name, path: route.path.spec.to_s, controller: route.defaults[:controller], action: route.defaults[:action]}
end

更新: 仍在为 Rails 4.2.7 工作。要提取控制器列表(每个实际问题),您可以简单地提取控制器并uniq

controllers = Rails.application.routes.routes.map do |route|
  route.defaults[:controller]
end.uniq
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式列出 Rails 中的所有控制器 的相关文章

  • 使用 Devise 和 Rails 从 Twitter Oauth 获取电子邮件

    我已经设置了一个基本的 Rails 应用程序来使用 twitter oauth gem 和设计 并且已经能够登录用户 但是 我的问题是我现在已将我的应用程序列入白名单 并且我想在响应中收到用户的电子邮件 我已遵循 Twitter 端的所有必
  • A has_many Bs 其中 B 没有主键

    我有型号 A 和 B A has many B 并且 B 属于 A 到目前为止 一切都很好 除了我指定 B 没有主键 我不打算修改或删除单个 B 行 并且我预计会有数百万到数十亿的 B 行 因此省略主键将非常方便 节省空间 创建 B 表的迁
  • Heroku 上的 Google Vision API 身份验证

    在 Heroku 上验证 Vision API 的最佳 简单方法是什么 在开发中我只使用 vision Google Cloud Vision new project instacult keyfile path to keyfile js
  • Rails validates_与模型的错误消息相关

    我在模型中使用 validates linked 来使用其他模型的验证代码 问题是验证失败的消息是 is invalid 我想将模型验证失败的实际描述错误冒泡到顶部 我发现这个问题 验证与模型的错误消息关联 https stackoverf
  • 如何生成devise gem的注册控制器

    我已经设置了 Devise 我已经在 user rb 文件中设置了以下代码 def self create auto password generated password Devise friendly token first 8 sel
  • Rails 应用程序在模型间保存方面遇到问题

    我正在开发一个从网站下载元标签并然后保存的应用程序 下载发生在一个名为Site 我想将下载的机器人元标签保存到一个名为的模型中robots tag它通过一个名为的连接表连接到站点meta tag sites 但是我在站点模型中编写的用于执行
  • 在 Mac 上使用“sudo gem install nokogiri”安装 nokogiri 时出错

    我试图安装 nokogiri 因为它是启动 Rails 所必需的 rails s usr local rvm gems ruby 1 9 3 p194 global gems bundler 1 1 5 lib bundler spec s
  • 将带撇号的字符串传递给辅助方法无法正确显示

    我正在使用 Rails 教程中的辅助方法 它将两个字符串连接在一起 以便在视图中的标题选择器中使用 它工作得很好 除非字符串中有撇号 当 group name 包含撇号时 结果如下 这是方法 app helpers application
  • Ruby/Rails - 访问“查找”表而不对其进行建模?

    这是针对 Ruby on Rails 3 0 x 项目的 我有一个 查找 表 其中包含来自供应商的数据 当我从其他来源导入数据时 我想检查此表 加入 SKU 以获取额外数据 在我的应用程序中为该表创建模型对我来说似乎不合适 我的应用程序永远
  • 为什么 yaml 在生产中不可用?

    在我的 OS X 开发系统上 ruby version ruby 1 8 6 2007 03 13 patchlevel 0 universal darwin8 0 script console Loading development en
  • 使用简单的表单轨道删除日期选择中的日期时间和时间分隔符

    如何删除由名为 simple form 的 gem 创建的日期选择中的日期时间分隔符和时间分隔符 我想我必须重写initializesimple form 用于创建日期选择或在表单输入中传递哈希选项的方法 但这不起作用 我尝试这样的事情 f
  • “gem install Rails”因 DNS 错误而失败

    rvm use Using home owner rvm gems ruby 2 1 2 gem install rails ERROR While executing gem Gem RemoteFetcher FetchError Er
  • 如果不选择 Updated_at 属性,则无法更新 Rails 4 中的模型

    我正在从 Rails 3 2 13 升级到 4 并遇到更新模型的问题 我正在尝试仅更新模型上的单个属性 其中我只有 id 我还需要验证和回调 这在 Rails 3 中运行良好 但在 Rails 4 中遇到了麻烦 在 Rails 4 中 如果
  • CanCan load_and_authorize_resource 触发禁止属性

    我有一个使用强参数的标准 RESTful 控制器 class UsersController lt ApplicationController respond to html js def index users User all end
  • 使用 Capistrano 无法开始延迟的作业

    我无法使用 capistrano 配方启动延迟的作业流程 这是我收到的错误 usr local lib ruby gems 1 9 1 gems delayed job 2 1 1 lib delayed command rb 62 in
  • Backbone.js 应用程序可以逐步增强并可供搜索引擎抓取吗?

    我需要为我的下一个项目实现一个 MVC JavaScript 框架 但它既是一个网站 又是一个 Web 应用程序 是否可以公开数据服务器端 然后解析 URL 以显示 JS 版本 我计划使用 Rails 作为服务器端代码 我写了一个关于这个主
  • 更改 Rails 中的默认错误消息

    我们的客户决定 他们希望整个应用程序中所有空白 AR 错误消息从 不能为空 更改为 必须完成 Rails 最简单的方法是什么 Use config locales en yml 具体来说 将以下内容放入该文件中 en activerecor
  • 在运行时在 Rails 中向模型添加列(无需附加表)

    我试图让我的网络应用程序的管理员能够向模型添加一些新字段 该模型称为 Artwork 我想在运行时添加一个 test column 列 我只是在测试 所以我添加了一个简单的链接来做到这一点 它当然是参数化的 我设法通过迁移来做到这一点 de
  • Rails 设计 edit_user_password_path

    我无法路由到项目上的 edit user password path 它只是路由到家 有人可以帮忙吗 这个问题的答案很能说明问题 显示设备编辑密码屏幕 https stackoverflow com questions 7014966 sh
  • 新分配的序列不起作用

    在 PostgreSQL 中 我创建了一个新表并为其分配了一个新序列id柱子 如果我从 PostgreSQL 控制台插入记录 它可以工作 但是当我尝试从 Rails 导入记录时 它会引发异常 无法找到关联的序列 这是表格 d user me

随机推荐

  • 我可以使用 LLVM(低级虚拟机)为哪些平台编译二进制文件?

    我对使用 LLVM 的 Clang 编译器感兴趣 LLVM 声称是跨平台的 但尚不清楚可以针对哪些平台 我对此做了很多谷歌搜索 但似乎没有太多关于 LLVM 支持的平台的信息 我唯一发现的是 this http llvm org docs
  • 使用用户的 UID 发送 Firebase 云消息

    我想构建一个 Android 应用程序 允许用户向其他用户发送通知和数据消息 我最近才开始使用 Firebase Firebase 云消息传递对我来说仍然很困惑 我已经实现了向特定的发送消息device使用 Firebase 实例 ID 但
  • 未定义的引用 Json::Value 和 Json::Reader [重复]

    这个问题在这里已经有答案了 当我运行以下代码时 include
  • 从 CSV 文件读取/写入嵌套字典列表 (Python)

    我有一个如下所示的数据结构 data key 1 calc1 42 calc2 3 142 key 2 calc1 123 4 calc2 1 414 key 3 calc1 2 718 calc2 0 577 我希望能够将数据保存 加载到
  • Jenkins 建立健康阈值

    有没有办法改变 Jenkins 根据失败的测试计算构建运行状况的方式 我希望詹金斯治疗any失败的测试不是 阳光明媚 的 但到目前为止 我寻找一种方法来做到这一点还没有结果 标准设置是否允许这种级别的控制 或者是否有插件可以做到这一点 如果
  • 如何在 Android 上将 Google Drive 与 Picasso 集成?

    我正在编写一个在 Google Drive 中存储图像的应用程序 我想显示这些图像的图库 GridView 为了提高性能 即异步 我想将其与Picasso 但是Picasso load String 只是一个别名load Uri parse
  • 来自不同类的特定实例的 Swift 引用变量

    总的来说 我对 Swift 和 iOS 都很陌生 我正在使用 Swift 编写一个应用程序 这个应用程序有两个文件 ViewController swift and BTService swift ViewController swift有
  • 更改控制台中特定字母的颜色

    我正在使用几个形成一个特定的字符串strcat并将其显示到控制台中 该字符串包含以下字符 1 2 3 4 5 6 7 8 9 0 E我正在使用fprintf s 以此目的 例如 2E4137E65922 是代码的可能结果 无论如何我可以写信
  • 如何在 Rails 3 应用程序中分析请求

    如何在 Rails 3 应用程序中分析请求 这个答案 https stackoverflow com questions 2716418 how can i profile a request in rails似乎只适用于 2 我应该如何在
  • Java位移位的奇怪之处

    Java 有 2 个用于右移的位移运算符 gt gt shifts right and is dependant on the sign bit for the sign of the result gt gt gt shifts righ
  • Python + Beam + Flink

    我一直在尝试让 Apache Beam 可移植性框架与 Python 和 Apache Flink 一起使用 但我似乎找不到一套完整的指令来让环境正常工作 是否有任何参考资料包含使简单的 python 管道正常工作的先决条件和步骤的完整列表
  • PHP:如何彻底防止XSS攻击?

    如何才能完全防止 PHP 中的 xss 攻击 这是假设我不关心任何 HTML 标签或其他格式 仅运行 strip tags 并使其完全安全就足够了吗 Both htmlspecialchars and strip tags 被认为可以安全地
  • 使用 PyPDF2 将嵌套书签添加到 PDF

    的文档PyPDF2 https github com mstamy2 PyPDF2 指出可以向 PDF 文件添加嵌套书签 并且代码出现 阅读后 以支持此操作 向根树添加书签很容易 请参见下面的代码 但我无法弄清楚我需要传递什么作为paren
  • Visual Studio 2010 XAML 编辑器尴尬的 IntelliSense?

    在 Visual Studio C 文本编辑器中 当您需要属性时 只需键入prop然后点击两次选项卡即可获取属性的 片段 模板 类型和属性名称都会突出显示 当您想要在类型和属性之间切换时 请按 Tab 键 然后在完成后按 Enter 键 光
  • 如何在 Rust 中将字符串转换为字节向量?

    这可能是有史以来最愚蠢的 Rustlang 问题 但我保证我会尽力在文档或网络上的任何其他地方找到答案 我可以将字符串转换为字节向量 如下所示 let bar bytes some string 不幸的是我不能这样做 let foo som
  • 如何在同一解决方案中运行/调试多个 Web 应用程序项目?

    我有 2 个网络应用程序项目 一个是我的 asp net MVC 应用程序 另一个是与管理相关的功能 即 asp net Web 表单动态数据 我的 MVC 应用程序将是主站点 但我希望 Web 表单在 MVC 站点的 Admin 文件夹下
  • 如何调试 git 别名?

    调试git使用 shell 命令和引用使用别名可能很困难 我怎样才能看到什么git正在为给定的别名执行 In your gitconfig 添加以下内容 debug GIT TRACE 1 git 然后你就可以运行git debug
  • Xamarin.iOS:可执行文件已使用无效权利进行签名

    我最近添加了通知 FCM 到使用以下方法开发的 iOS 应用程序Xamarin iOS 当我尝试在已发布的设备 iPad 和 iPhone 上安装时 安装失败 我发现的所有类似问题都与本机开发有关 我尝试重新生成配置文件 删除并再次添加推送
  • BeautifulSoup find_all() 不返回任何数据

    我对 Python 很陌生 我最近的项目是从博彩网站抓取数据 我想要抓取的是网页上的赔率信息 这是我的代码 from urllib request import urlopen as uReq from bs4 import Beautif
  • 如何以编程方式列出 Rails 中的所有控制器

    我正在尝试构建一个 RESTful 应用程序来实际管理多种可配置对象 因此有大量的 资源 类型 因此有很多控制器 我仍处于 POC 阶段 所以如果我可以在第一个导航页面中显示所有控制器 那就太好了 那么有什么简单的方法 可编程 可以做到这一