1. 环境搭建
1 安装ruby1.9.3, 地址:http://rubyinstaller.org/
gem install rails
2. Rails的指导原则和理念
- DRY(Dont Repeat Yourself) - 保持代码清晰高效,这个一直是我喜欢rails的原因之一
- 约定大于配置 - rails假定你想要做什么以及准备如何做,而不是把任何事情都放到配置文件中去。比如我们说好数据库表的名称应该是模型类名称的小写的复数形式。那么rails会自动把该数据表与其模型类进行关联。
- REST是WEB应用的最佳模式 - 用resources以及标准的HTTP动作来组织你的应用。
3. 创建你的第一个应用
大多数的第一个应用要么是购物车要么就是博客, 我们也不能免俗. 我们将要在下面的内容中打造一个博客,也就是rails经常吹嘘的10分钟打造的博客系统(事实上用不了十分钟)
rails new blog
这将使rails为你创建一个blog项目 (rails -h可以查看rails命令的帮助)
我们CD到blog目录内。
那么在任何情况下,Rails会在你的工作路径内为你创建一个blog的文件夹。本教程的大多数工作都会在app文件夹内操作,这里有一个Rails默认创建应用时创建的文件夹以及文件说明:
文件/文件夹 | 说明 |
---|---|
Gemfile | 该文件允许你指定你程序所需要的gem (比如你用到了mysql数据库, 你需要在这里指定 gem "mysql"). |
README | 你的应用程序大体说明. 用这个来告诉他人该程序是干什么的, 等等. |
Rakefile | 该文件包含了一系列可以在终端运行的命令. |
app/ | 包含了应用程序的控制器,模型,以及视图. 在本教程中你将专注于该文件夹. |
config/ | 配置你应用程序的运行时规格,路由,数据库等等. |
config.ru | 基于服务器的Rack配置,用于启动程序. |
db/ | 显示你当前数据库的模式,以及数据库迁移. |
doc/ | 你应用的详细文档. |
lib/ | 你应用的扩展模块. |
log/ | 日志. |
public/ | 唯一可以被访问的文件夹. 你可以保存你的图像,javascript, 样式表(CSS), 以及其他静态文本. |
script/ | 包含启动你程序的rails脚本,并可以放置其他你用来部署或者运行你程序的脚本. |
test/ | 单元测试,夹具以及其他测试 |
tmp/ | 临时文件 |
vendor/ | 放置第三方代码的地方. 在一个典型的rails应用中, 这将包括ruby gems, rails源代码 (如果你拷贝到你的应用中的话), 以及包含额外功能的插件. |
接下来我们安装需要的gems
$ bundle install
(事实上绑定的gems都定义在gemfile中)
配置数据库连接:config/database.yml, 默认情况下是连接到SQLite3的, 如果你在使用SQLite3,保持默认就可以了, 如果是MySql,需要改为:
development:
adapter: mysql
encoding: utf8
database: blog_development
pool: 5
username: root
password:
|
接下来创建数据库。
$ rake db:create
该rake命令会根据你的数据库配置自动为你创建数据库
万事俱备,只欠服务器了
$ rails s
(新的script命令变化很大, 现在只需要输入 rails [option] [args] 就可以了)
默认情况下 rails 将启动 Webrick 服务器, 赶快打开你的浏览器在地址栏输入 http://localhost:3000/ 查看你的第一个rails程序 吧 :)
4. 第一个应用 - Hello world
接下来我们要输出一个所有语言的都要学习的 hello world。
要在rails应用中输出一个hello rails,你需要创建一个控制器以及一个视图。在rails的世界里,你几乎不用手动的一个个去创建各个控制器与视图,rails命令就可以帮忙我们搞定一切。
$ rails g controller home index
rails将根据命令为你创建多个文件,其他包括 app/views/home/index.html.erb, 这是一个用于显示index动作结果的模板,打开该文件,写入以下代码:
<h1>Hello world!</h1>
现在你已经完成了了控制器与视图。在这里,我们需要在访问 localhost:3000 的时候就显示hello rails,首先我们需要删除 public/index.html
然后你需要告诉rails你实际的首页在什么位置。打开 config/routes.rb, 该文件是你应用程序的路由设置,它用指定的DSL(domain-specific language)来保存条目,来告诉rails如何把进来的请求转发到相应的控制器以及动作。该文件包含了许多路由器样例,其他一个就是如何指定控制器 和动作来访问根地址。
找到以 root 开头的行,改为如下:
Blog::Application.routes.draw do
get "home/index"
root :to => 'home#index' #:to指定了需要访问的控制器与动作
end
现在你可以在 http://localhost:3000 中看到Hello world了
参考:http://edgeguides.rubyonrails.org/getting_started.html