Rails项目结构详解

应用程序根目录

Gemfile:应用程序的依赖关系配置(gem)。修改后通过bundle install应用。

README.rdoc:应用程序说明,建议包括所用的Ruby版本,依赖关系,必要的配置,如何创建数据库,如何初始化数据库,如何运行测试套件,需要配置的服务(工作队列、缓存服务器、搜索引擎等),如何部署,等等。

config/ - 配置文件

config/application.rbconfig/environment.rb:定制Rails(覆盖默认惯例),不常用。

config/database.yml:数据库配置。

config/routes.rb:URL路由配置。

config/environments/ - 应用程序环境配置

config/environments/development.rb:开发环境配置。

config/environments/test.rb:测试环境配置。

config/environments/production.rb:生产环境配置。

config/initializers/ - 设置应用程序初始值

config/initializers/i18n.rb:国际化支持设置,包括默认区域(locale)设置,所支持的语言。

config/locales/ - 区域设置

config/locales/en.yml:区域en的设置,包括语言(提示信息、模型名称)、货币。

db/ - 数据库文件

db/schema.rb:自动生成的数据库结构,包括有哪些数据表、数据表有哪些字段、字段的类型和默认值等。

db/seeds.rb:自定义的种子数据,通过rake db:seed导入数据库。

db/development.sqlite3:开发用SQLite3数据库。

db/test.sqlite3:测试用SQLite3数据库。

db/migrate/:数据迁移(migration)文件,通过rake db:migrate应用,通过rake db:rollback回滚。应用和回滚针对的都是最新的数据迁移(最后创建的)。


app/ - 应用程序主目录

app/models/:模型文件(model)。

app/views/:视图文件(view)。

app/controllers/:控制器文件(controller)。

app/helpers/:视图和控制器的帮助方法文件(helper)。

app/assets/:静态资源文件。包括CSS(app/assets/stylesheets/)、JavaScript(app/assets/javascripts/)和图片(app/assets/images/)。

test/ - 测试文件

test/test_helper.rb:测试的帮助方法(helper)。

test/models/:模型的单元测试文件。例如test/models/product_test.rb

test/controllers/:控制器的功能测试文件。例如test/controllers/products_controller_test.rb

test/integration/:使用流程的集成测试文件。例如test/integration/user_stories_test.rb

test/fixtures/:测试夹具文件(fixture)。例如test/fixtures/products.yml

test/helpers/:测试帮助方法的测试文件。例如test/helpers/products_helper_test.rb


lib/ - 库文件

不适合放在模型、视图、控制器中的程序代码,常用的公共功能等。可以建立子目录,并把功能相关的代码文件可以放在同一个子目录下。

lib/tasks/:自定义Rake任务文件。定义后可以用rake db:task_name执行

vendor/ - 第三方库文件

安装的插件就放在这里。

public/ - 静态文件

包括robots.txtfavicon.ico404.html500.html等。

log/ - 日志文件

log/development.log:开发环境日志文件。

log/test.log:测试环境日志文件。

bin/ - 可执行文件

常用命令railsrakebundle的可执行文件都在这里。

doc/ - 文档

doc/api/index.html:Rails参考文档(API reference),通过rake doc:rails生成。

doc/app/index.html:应用程序文档(源代码索引),通过rake doc:app生成。

tmp/ - 临时文件

包括应用程序运行过程中生成的pid、socket、session和缓存文件。



你可能感兴趣的:(Rails项目结构详解)