在rails中,我可以通过controller_name获取当前控制器的名称,通过调用action_name获取当前操作的名称。我正在寻找类似的运行时反射来获取以下内容:如何获取控制器列表和Ruby on Rails的操作?
- 应用程序中所有控制器的列表。
- 给定控制器中所有操作的列表。
例如,我是具有“添加”和“编辑”动作的产品控制器。我可以通过编程方式获取这些操作的名称,以向用户显示哪些操作受支持?
我看了一个方法,要求使用ActionController::Routing::Routes.named_routes.routes.each
但我无法得到它的工作。当我使用它时,我得到了未初始化的常量ActionDispatch::Routing::Routes
错误。
如果有什么好的教程或文档可以帮助我理解rails反射功能如何。我搜索了它,但我主要是积极记录反思相关的博客。我正在寻找一些能让我在运行时获得有关控制器和动作/方法的信息。
谢谢,
Tabrez
你是在运行时还是在耙耙工作中这样做。运行时间是一个坏主意。耙工很容易做到这一点。 – drhenner 2011-12-31 05:37:35
你的意思是“耙路线”?我在运行时正在寻找一些东西。我不需要获取路线输出的大量信息。我只需要控制器名称,我认为它必须作为集合提供。作为rails的noob,我只是不知道在运行时可以在rails中访问哪些上下文对象。 – Tabrez 2011-12-31 06:52:06
在这里找到类似的问题,http://stackoverflow.com/questions/1564278/how-to-programmatically-list-all-controllers-in-rails – nkm 2011-12-31 07:17:47