`

rails应用遍历Controllers目录并取出所有的Controller和action

阅读更多
    今天在javaeye论坛上看到有人有这个需求,顺手写了下。原理就是通过遍历Controllers目录,并用正则表达式取出Controller名和它所有的action。

<!---->    @controllers=Hash.new
    path
="#{RAILS_ROOT}/app/controllers/"
    Dir
.new(path).entries.each do |f|
      
if !f.index('.rb').nil? and f.index('.rb')>0
        
        controller
=File.open(path+f.to_s)
        s
=controller.read
         
/class\s(.*)\s\<!---->match(s)
        controller_name
=$1.to_s
        actions
=[]
        s
.scan(/def\s(.*)\s/).each|action| actions<<(action[0]) }
        
@controllers[controller_name]=actions
        controller
.close
      end
    end
    
    
@controllers.each_pair do |name, actions|
      actions
.each do |action| 
        puts 
|name<<" "<<action
      end
    end

分享到:
评论

相关推荐

    使用Aptana+Rails开发Rails Web应用(中文)

    例如,要在Rails应用中创建一个新的资源,如博客文章,你需要在models目录下创建一个名为`post.rb`的文件,定义Post类,并设置属性如标题和内容。在controllers目录下创建`posts_controller.rb`,定义控制器方法,如...

    Rails 3 in Action

    3. **MVC架构**:Rails采用Model-View-Controller架构,书中详细解释了模型(Model)、视图(View)和控制器(Controller)之间的交互与职责。 4. **路由**:Rails的路由系统允许灵活地定义URL到控制器动作的映射,...

    Rails 4 in Action, Second Edition.pdf

    为了帮助读者更好地理解和应用所学知识,**Rails 4 in Action, 第二版** 包含了一系列案例研究和实战项目,例如: - **电子商务网站开发**:从零开始构建一个完整的电子商务平台,涵盖商品管理、订单处理等功能。 -...

    Ruby on Rails所构建的应用程序基本目录结构总结

    当使用rails new appname生成Rails应用后,我们可以通过tree来查看Rails应用的目录结构: 目录结构 应用程序目录下会有app、config、db、doc、lib、log、public、script、test、tmp和vendor等11个目录和config.ru、...

    Rails3常用命令行命令

    这会生成一个包含所有必要文件和目录结构的新Rails项目。接下来,你可以通过以下命令进入Rails的控制台,也称为Console: ```bash rails c 或者 rails console ``` 在控制台中,你可以直接操作应用的数据模型和...

    Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

    8. **app**:应用程序核心代码目录,包括模型(Model)、视图(View)和控制器(Controller),以及帮助器(Helper)、邮件器(Mailer)、通道(Channel)等。 9. **tmp**:临时文件目录,存储运行时生成的文件,如...

    rails2-sample

    此外,Rails还内置了许多实用功能,如ActiveRecord(用于数据库交互)、Action View(用于页面渲染)和Action Controller(用于处理用户请求),这些都使得开发者能够快速构建出功能丰富的Web应用程序。 #### 2. ...

    rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板.zip

    rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...

    应用Rails进行敏捷Web开发中文第三版

    Ruby on Rails(简称Rails)是一款基于Ruby编程语言的开源Web应用程序框架,它遵循“Don't Repeat Yourself”(DRY)原则和“Convention over Configuration”(约定优于配置)理念,极大地提高了Web开发的效率和...

    Ruby_On_Rails笔记

    例如,Rails中的控制器文件通常位于app/controllers目录下,且文件名需以Controller结尾,类名则遵循小写和下划线命名约定。例如,HelloWorldController.rb文件位于app/controllers目录下,并继承自...

    Ruby+on+Rails快速Web应用开发实战.pdf

    - **MVC架构**:文档中提到的MVC是Rails的核心架构模式,它将应用程序分为三个主要的组件:模型(Model)、视图(View)和控制器(Controller)。这种分离使得代码更加模块化,易于管理和扩展。 ### Rails应用的...

    Ruby-这是一个在Rails应用程序中使用React并使用webpack的示例

    本示例将探讨如何在Rails应用中集成React,并利用webpack进行模块打包,提升项目的前端性能。 首先,React是Facebook推出的一个用于构建用户界面的JavaScript库,以其组件化开发方式和虚拟DOM(Document Object ...

    Ruby-GoOnRails使用Rails生成器来生成一个Golang应用

    在Rails项目根目录下,进入Go应用目录并运行Go服务: ```bash cd lib/my_go_app go run main.go ``` ### 6. 调整配置 Rails和Go应用之间的通信可能需要配置,例如端口、认证等。在Rails中,可以修改`config/...

    Rails应用程序样本AWSOpsWorksRailsDemoApp.zip

    AWS OpsWorks Rails Demo App 是一个示例应用程序,旨在帮助开发者了解如何在AWS OpsWorks环境中部署和管理Rails应用。这个应用可能包含了常见的功能,如用户注册、登录、数据展示和交互,以展示Rails和OpsWorks结合...

    rails 项目起步示例

    学习Rails项目起步,你需要熟悉这些核心概念,并掌握如何创建和运行Rails应用,以及如何使用Rails的命令行工具。同时,理解MVC模式和Rails的约定优于配置(Convention Over Configuration, CoC)原则是至关重要的。...

    rails 3.2 API

    通过`api_rubyonrails`这个压缩包,开发者可以获得Rails 3.2的所有API细节,包括类、模块、方法及其用法,这对于理解和开发Rails 3.2应用程序至关重要。查阅这些文档可以帮助开发者快速定位问题、学习新的功能,从而...

    Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)

    1. Rails 3.0: Rails 3是重大升级,引入了ActionController::Metal,这是一个轻量级的控制器,用于提高性能。同时,它引入了多路由引擎支持,如Rack中间件,使得与其他Web服务器的集成更加容易。此外,ActiveRecord...

    rails 部署 nginx

    这包括安装Ruby环境(如RVM或rbenv),管理Gemfile中的依赖(通过Bundler),设置数据库配置,并确保所有必要的服务(如Nginx和Rails应用服务器Puma或Unicorn)都已安装和配置。 4. **Nginx配置**: 文件 "nginxx_...

    ruby on rails 3 tutorial.pdf

    Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-Controller)架构模式,为开发者提供了构建高效、简洁、可维护的Web应用的工具。 Ruby语言以其优雅的语法和面向对象特性著称,而...

Global site tag (gtag.js) - Google Analytics