The Last Day Of Summer

.NET技术 C# ASP.net ActiveReport SICP 代码生成 报表应用 RDLC
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
之前的三十篇都是根据书本上的内容写的,很少有自己的理解,从这篇开始,来了解一些Rails的内部机理,所以理解的东西比较多,代码就少了,这次我们来看看Rails的目录结构。

关于Rails的目录结构,通过前面的练习,我们应该有一些了解了,我们的工作目录主要是apptest两个。其他目录还了解不多,下面是一个Rails项目通常的目录结构,我们还用前面的depot项目来作例子,目前的depot项目的结构:

├─app                          

  ├─controllers             

  ├─helpers

  ├─models

  └─views

      ├─admin

      ├─layouts

      ├─login

      ├─search

      └─store

├─components

├─config

  └─environments

├─coverage

├─db

  └─migrate

├─doc

  └─app

     ├─classes

      └─files

          ├─app

            ├─controllers

            ├─helpers

            └─models

          └─doc

├─lib

  └─tasks

├─log

├─nbproject

  └─private

├─public

  ├─images

  ├─javascripts

  └─stylesheets

├─script

  ├─performance

  └─process

├─test

  ├─fixtures

    └─performance

  ├─functional

  ├─integration

  ├─mocks

    ├─development

    └─test

  ├─performance

  └─unit

      └─performance

├─tmp

  ├─cache

  ├─pids

  ├─sessions

  └─sockets

└─vendor

    └─plugins

下面来解释这些目录的含义

appModelViewController都在这个目录下,对应的有子目录,我们大部分的工作都在这里进行。

Components:可复用的组件都放在这里。

Config:数据库链接等的配置信息。

Coverage:这个不是Rails自己的目录,是我们在前面测试时安装的测试覆盖率工具的目录。

Db:存放DB结构(Schema)的信息。

Doc:存放文档,我们前面生成过一次depot项目的文档,都在这里面。

Lib:存放共享的代码。

Log:我们的项目的日志信息,里面有development.log,production.log,server.log,test.log,我们在开发时的信息都写在development.log里,而测试时的log都写在test.log里。

Nbproject:这个不是Rails的目录,是我们前面用NetBeans创建depot项目的时候生成的。

Public:可以从Web访问的目录,如果我们在浏览器的地址栏里直接输入:http://localhost:3003/那么看到的就是这里的index.html页面。另外,我们前面也把一些css文件放在了这里的stylesheet目录里。

ScriptRails用到的脚本,有一些我们可能已经用过了,比如:generate,process,performance

TestModel测试,功能测试,测试用的数据等等,我们前面在这个目录下已经写了很多代码了。

Server:运行WEBrick服务器,我们前面在depot项目里已经使用了。

Vendor:存放第三方的代码。

 

下面再主要说说Script目录下的脚本,主要的脚本有:

l         Benchmarker:对比多个方法的性能。

l         Breakpointer:断点,能够让你和Rails应用程序交互。

l         Console:让你能够使用irb命令和rails应用程序交互。

l         Destroy:移除generate生成的文件。

l         Generate:代码生成器,能够生成ControllerMailerModelWeb服务等。你还可以从Rails的网站上下载一些扩展的生成器模块。

l         Profiler:对你的程序进行性能测试,使用方面前面的随笔也已经介绍过了。

Runner:可以使我们代码中的方法脱离Web的上下文环境来运行。