如果你按照这个向导,你将会新建一个rails工程叫blog,
一个非常简单的webblog。在你开始新建一个rails工程之前,请确保你是否安装了rails.
例子里面使用#和$来表示终端的提示符。如果你使用windows,你的终端提示符
应该是像这样的 c:/source_code
3.1 安装rails
在大多数情况下,最简单的安装rails是使用rubygem.
通常使用 root 用户运行这个命令:
$ gem install rails
3.2 新建一个blog应用程序
使用这个向导的最好的方法就是根据每一步发生的。没有代码或
使这个例子应用程序所需的步骤已被排除在外,所以你可以从字面上跟着一步一步走。
如果你想看全部的代码,你可以下载这个代码。Getting Started Code.
一开始,打开一个终端,cd到一个有足够权限的文件夹下,输入
$ rails new blog
这个命令将会在这个目录创建一个叫做Blog的rails应用程序。
你可以通过rails new -h命令查看所有的帮助
在你创建完Blog应用程序之后,转到blog目录下,继续我们的学习。
$ cd blog
在任何情况下,rails将会建一个blog目录在你的工作目录。打开这个文件夹
看里面的内容。这个向导的大多数的工作将会发生在app文件夹。
但在这里介绍下Rails创建新的应用程序在默认情况下每个文件夹的
功能的基本纲要。
文件/文件夹 | 目的 |
---|---|
Gemfile | 这个文件允许你指定你的rails程序里面依赖的gem。请看下面的bundler章节。 |
README | 这是一个关于你的应用程序的简要的说明。你应该编辑这个文件去告诉别人你的程序是干什么的,怎样设定等等信息。 |
Rakefile | 这个文件定义任务和装载任务,这些任务可以从命令行中运行。通过rails组件来定义这些任务。不需要改变Rakefile,你应该增加自己的任务通过增加文件到你应用程序的lib/tasks目录下。 |
app/ | 包含控制器, 模型,视图 和你应用程序的资产(assets)。本指南的其余部分,您将重点放在这个文件夹。 |
config/ | 配置你应用程序的运行规则,路由,数据库等等。 |
config.ru | 用来服务器启动应用程序的Rack设置。(Rack是一个web服务器和ruby程序以及框架的接口) |
db/ | 显示你当前数据库和数据库的整合。你不久将会学到数据库的整合。 |
doc/ | 你的应用程序的相关文档。 |
lib/ | 你应用程序的模块扩展。(本指南里未提及) |
log/ | 应用程序的日志文件。 |
public/ | 用户唯一看到的文件夹。包含静态文件和编译过的资产(assets)。 |
script/ | 包含启动你的应用程序的脚本和其他发布你应用程序的脚本。 |
test/ | 单元测试以及其他测试相关的. 这些在Testing Rails Applications里面有详细解释。 |
tmp/ | 临时文件。 |
vendor/ | 一个存放第三方代码的地方. 在一个典型的rails应用程序里面,包含ruby gems,rails代码(如果把rails代码安装到你的工程里面的话)和包含额外功能的打包好的插件。 |
3.3 配置数据库
像大多数rails程序,将会与数据库交互。数据库被指定在一个配置文件(config/database.yml)。
如果你打开新建的rails应用程序的这个配置文件,你会发现默认的数据库配置使用的是SQLite3.
这个文件默认包含3种不同的运行环境。
。开发(development )运行环境是你运行在开发机器上的环境。你可以手动的与应用程序进行交互。
。测试(test)运行环境是用来运行自动测试的。
。产品(production)运行环境是用来当你向全世界发布你的产品的时候运行的环境。
3.3.1 配置一个SQLite3数据库
Rails附带内置sqlite3的支持,这是一个轻量级的服务器数据库应用程序。
虽然繁忙的production环境可能超载的SQLite。但是它工作在开发和测试
环境里面还是蛮好的。rails默认使用sqlite数据库新建一个工程,但是你在
之后可以任意修改的。
这里是一个默认的开发环境的数据库配置文件(config/database.yml)。
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
在这个向导里面我们使用SQLite3数据库作为数据存储。因为它是一个0配置的数据库。
rails也支持mysql 和 PostgreSQL 。并且有很多其他数据库的插件。
如果你在产品环境中使用数据库,应该会有对应的适配器。
3.3.2 配置一个mysql数据库
如果你选择mysql代替sqlite3。你的配置文件(config/database.yml)是和sqlite3有点区别的。
下面是开发环境的例子。
development:
adapter: mysql2
encoding: utf8
database: blog_development
pool: 5
username: root
password:
socket: /tmp/mysql.sock
如果你的mysql数据库有root用户并且密码为空的话。这个配置文件可以直接使用的。
development:
adapter: postgresql
encoding: unicode
database: blog_development
pool: 5
username: blog
password:
development:
adapter: jdbcsqlite3
database: db/development.sqlite3
3.3.5 配置一个Mysql数据库在JRuby平台development:
adapter: jdbcmysql
database: blog_development
username: root
password:
最后如果你选择使用PostgreSQL并且使用JRuby。你的配置文件应该像下面一样。
development:
adapter: jdbcpostgresql
encoding: unicode
database: blog_development
username: blog
password:
你可以不需要手动更新数据库配置文件。如果你看过 rails new命令的
可选项,你会发现有个"-database"选项。这个选项允许你选择一个
经常使用的关系数据库。你还可以再次允许rails new命令。
$ rails new blog --database=mysql
你会发现config/database.yml 里面已经是mysql的配置,替换了原来
的sqlite.
3.4 新建数据库
$ rake db:create
Rake是在rails中做很多事用的命令。在你的工程目录下运行rake -T 命令,你可以看见rake命令可以利用的所有
选项。