1、创建 Rails 项目,例如:rails new shop
项目创建的文件:
①app文件夹:我们的业务逻辑文件存放地,在后面的教程里,我们会经常为它增加内容
②config 文件夹:这里存放的是 Rails 的配置文件。首先,打开 environments 文件夹,我们可以看到三个文件,这分别对应 Rails的三种运行环境,我们开始时候使用的是 development 环境,运行测试时是 test环境,当我们把代码部署到服务器上,正式上线的时候,使用的是 production 环境。Rails 允许我们分别为三种环境做不同的设置,比如,production 中config.assets.digest = true,而开发环境可以设为config.assets.digest = false。Rails 还为我们提供了 I18n 的管理功能,这里还只有 en.yml 一种语言包,后面的课程里,我们将详细介绍 I18n 功能,并添加简体中文和英文语言包。database.yml 中配置了数据库信息。Rails 默认使用 sqlite 数据库作为开发使用。我们也可以更改它,在 new 的时候这样做:rails new shop -d mysql|oracle|postgresql|...routes.rb 是我们的路由文件,一个非常重要的文件。secrets.yml 中的配置分别对应三种运行环境,它是用来加密我们的 session 的。
③db 文件夹:如果你使用的是 sqlite 数据库,那么你会发现它存放在这里。sqlite 是一种小型的便于开发环境使用的数据库。在生产环境(production)的数据库,比如 mysql,postgres 等数据库文件,是不需要放到这里的。migrate 文件夹中,存放的是我们的数据库迁移文件,这里还有一个 seeds.rb 文件,可以用它来为项目创建一些初始数据。
④lib 文件夹:lib,在我们开发 Rails 项目是,会经常的扩展一些功能,而这些功能具有复用的特点时,可以把代码放到 lib 中。这里我想到了 Rails 的一条哲理:Convention Over Configuration,约定优于配置。我们扩展的功能文件,可以放到任何可被夹在的目录下,但是,那违背了 Rails 的这条哲理。
⑤log 文件夹:这里存放的是日志文件,我们可以看到它对应了上面的三种运行环境,Rails 把每一种运行环境的 log,都单独的存放。
⑥public 文件夹:这里存放的是静态文件,比如图片,html,还有编译好的 js,css 等。
⑦test:这里是测试文件,我们编写项目的同时,也会带领大家编写对应的测试代码。不过,我们使用 Rspec 进行测试,测试文件放到 spec 文件夹里。
⑧vendor 文件夹:这是第三方代码库,比如我们 clone 下来的 gem,下载的 js 库等。
⑨Gemfile 文件:在之前的讲解中,我们经常提到 Gem。Gem,是 Ruby 编写的代码库的发布包。一个 Gem 中还可以包含了其他一些 Gem,比如,Rails 就是个 Gem,其中还包含了activerecord,activesupport 这些 Gem。可以说,Rails 就是一大堆 Gem 的集合。Rails 是通过 Gemfile 文件,来管理众多 Gem 的。打开 Gemfile,可以看到我们的项目使用了 Rails 4.2.0 这个版本的 Gem,使用了 sqlite3 这个数据库,以及其他的一些 Gem,这都是 Rails 4.2.0 默认使用的。我们是可以修改这个文件,每次修改之后,我们需要bundle install,它会把 Gem 的版本号和互相间的依赖关系重新的配置一遍,并且会自动的更新 Gemfile.lock 这个文件,然后安装 Gefile.lock 中声明的 Gem。所以,即便我们使用不同的开发机器,只要 Gemfile.lock 相同,我们就会安装相同的 Gem,以保持每个开发机器使用相同的开发和运行环境。
⑩Rakefile:Rails 为我们提供了很多便捷的 rake 任务,我们通过rake -T可以看到,如果加上rake -T -D,可以看到详细的说明。当然,我们也可以自己编写 rake,把它们放到 lib/tasks/里面,扩展名是 .rake。
⑪README.md 文件:为你的项目写一份 Readme 是很有帮助的,你有注意到.md 这个格式么?它是 markdown 格式,目前最流行的书写格式,本书也是用 markdown 写成的。