Gemfile
:应用程序的依赖关系配置 (gem)。修改后通过bundle install
应用。
README.rdoc
:应用程序说明,建议包括所用的 Ruby 版本,依赖关系,必要的配置,如何创建数据库,如何初始化数据库,如何运行测试套件,需要配置的服务 (工作队列、缓存服务器、搜索引擎等),如何部署,等等。
config/
- 配置文件config/application.rb
和config/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.txt
、favicon.ico
、404.html
和500.html
等。
log/
- 日志文件log/development.log
:开发环境日志文件。
log/test.log
:测试环境日志文件。
bin/
- 可执行文件常用命令rails
、rake
、bundle
的可执行文件都在这里。
doc/
- 文档doc/api/index.html
:Rails 参考文档 (API reference),通过rake doc:rails
生成。
doc/app/index.html
:应用程序文档 (源代码索引),通过rake doc:app
生成。
tmp/
- 临时文件包括应用程序运行过程中生成的 pid、socket、session 和缓存文件。