最近在做一个基于Controller加Action的权限管理插件,需要得到应用中的所有Controller作为一个列表供用户选择,这可以通过ApplicationController.subclasses得到,但是Rails在启动时并不会自动加载所有Controller,而是当请求到达时,根据路由来决定应该加载那个Controller,因此要使用ApplicationController.subclasses,就必须先require所有的Controller:
def require_all_controllers(path)
Dir.new(path).entries.collect do |e|
controller_path = File.join(path, e)
if e[0] != 46
require_all_controllers将加载指定目录下的所有以controller.rb结束的文件,你也可以选择将结果缓存起来,这样就不需要每次都重新require了:
@@all_controllers = nil
def get_all_controllers
require_all_controllers("#{RAILS_ROOT}/app/controllers") unless @@all_controllers
@@all_controllers ||= ApplicationController.subclasses
end
至于Action,可以直接调用Controller的action_methods方法得到。
分享到:
相关推荐
主要介绍了ASP.NET实现MVC中获取当前URL、controller及action的方法,结合实例形式分析了asp.net mvc获取当前URL、controller及action的具体实现技巧,需要的朋友可以参考下
Controller分离不会出现一个Controller可以处理.do也处理.htm可自己扩展.action .json等,适合分离前台会员,后台管理系统的Controller,也可扩展api请求,后缀让请求一目了然,集成 druid和mybatis。带Mysql数据库...
本文实例讲述了Yii框架获取当前controlle和action对应id的方法。分享给大家供大家参考。具体方法如下: 在Yiii框架开发中,你可能会要获取当前controlle或action的id,其实很简单,一句代码就实现了,以下是分别在...
使用Yii2的时候,在某些场景和环境下需要获得Yii2目前所处于的module(模型)、Controller(控制器)、Action(方法),以及会调用控制器里面已经定义过的一些公共的方法等.对于这些问题Yii2可以在视图层View中使用$this->...
Visual Studio提供的Controller创建向导默认为我们创建一个继承自抽象类Controller的Controller类型,这样的Controller只能定义同步Action方法。如果我们需要定义异步Action方法,必须继承抽象类AsyncController。这...
使用Yii2的时候,在某些场景和环境下需要获得Yii2目前所处于的module(模型)、Controller(控制器)、Action(方法),以及会调用控制器里面已经定义过的一些公共的方法等.对于这些问题Yii2可以在视图层View中使用$this->...
原生asp.net不支持通过json提交 方式给控制器的Action传参数,本程序通过给自定义输入字符串格式方法。在action的传参上加入FromJsonKey属性即可在传入的json中传入参数,如果传入的json中不存在相应键即报错 ...
InitPHP采用了分层体系架构,在...2. 修改框架默认Module,Controller,Action逻辑,如果参数不存在则返回404错误页 3. 修改获取IP地址的函数BUG 4. 新增验证码增强类 5. ajax_return 添加json和xml的HTTP Content-type
在Asp.net Core之前所有的Action返回值都是ActionResult,Json(),File()等方法返回的都是ActionResult的子类。并且Core把MVC跟WebApi合并之后Action的返回值体系也有了很大的变化。 ActionResult类 ...
前言 单元测试对我们的代码质量非常重要。很多同学都会对业务逻辑或者工具方法写测试用例,但是往往忽略了对Controller层写单元测试。...根据用户id去获取用户信息然后展示出来。下面看看如何对这个Action进行测试。
{Domain}/{Controller}/{Action} 数据形式 QueryString: ?name=zhangsan&age=22 Form Cookie Session Header HttpRequest HttpRequest 是⽤户请求对象 提供获取请求数据的属性 Cookies,Headers,Query,QueryString,...
d. 开发Service接口和Service接口实现,并在Action中通过set方法注入该Service; 接口文件:UserService 接口实现:UserServiceImpl 注入Service e. 开发DAO,DAO继承com.hikvision.xxx.HibernateBaseDAO; 示例 f...
有用过Zend Framework框架开发过项目的网友都知道 Zend Framework (ZF) MVC中的Controller和Action名称默认是不支持大小写的,这对于已经习惯了驼峰式代码风格的开发人员来说,显然是难以接受的。还好可以设定前端...
The Controller looks at the incoming event and dispatches the request to an Action class. The struts-config.xml determines what Action class the Controller calls. The struts-config.xml configuration ...
实际上这和asp.net mvc框架的核心思想很类似,它会解析url,从中获取controller和action名称,然后激活controller对象,从请求获取action参数并执action。在web form平台上,我们把方法写在.aspx.cs中,要实现的就是...
对Web应用请求进行深度分析,发现不管是页面请求还是ajax请求,只要在后端Controller的Action上设置权限检查关口即可进行精准权限管控。相应的设计思路应运而生。结合反射自动生成权限列表。借助授权过程检查,自动...
Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。 流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的...
2.6.2. Struts的强项........................................................................................................58 Struts in Action 中文版 Lastest Revised:10/14/2005 10:27:00 AM ...
3.1.4. Controller Registry Controller Registry负责跟踪Kubernetes集群中所有的Replication Controller,Replication Controller维护着指定数量的pod 副本(replicas)拷贝,如果其中的一个容器死掉,Replication ...