首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

在Rails 3.0中,怎么得到项目中所有的控制器名称,还有控制器里的方法名

2012-02-20 
在Rails 3.0中,如何得到项目中所有的控制器名称,还有控制器里的方法名在Rails 3.0中,如何得到项目中所有的

在Rails 3.0中,如何得到项目中所有的控制器名称,还有控制器里的方法名
在Rails 3.0中,如何得到项目中所有的控制器名称,还有控制器里的方法名
2.X是可以的。3.0以后,方法变了,还没有找到。

[解决办法]
在google上查了一下午,也没查到相应的资料
但是每一个rails 3 程序,都有一个相应的 Rails::Application进行包裹(文件在config/application.rb
),所以应该在Rails::Application中有,但是用irb查了一下午也没有收获

倒是有一个比较土的方法, 代码如下:
controllers = {}
con_classes = ObjectSpace.each_object(Class).select {|cls| cls.ancestors[1..-1].include?(ApplicationController) }
con_classes.each do |cls|
controllers[cls.name.to_sym] = cls.public_instance_methods(false)
end

但是有点问题:
这段代码在开发模式下,只能获得当前控制器,而在产品模式下是正常的

热点排行