通过
Ruby On Rails
框架来更好的理解
MVC
框架
1.
背景
因为我在学习软件工程课程的时候,对于
MVC
框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用
MVC
框架。如今我了解到一款十分优秀的框架
Rails
,而且爱不释手,所以推荐给大家,帮助你更好的了解
MVC
框架。
2.
环境准备
操作系统:
Linux(
建议使用
Ubuntu12.04
或者更高
windows7
下面开发真的很费事,搭建环境比较困难
)
。
Ruby: 1.9.3
(建议不要使用
2.0
以上的,因为针对它的开源项目很少)
Rails:
和
1.9.3
配套的
Rails 3.2.13 (3.2
系列的都可以,建议不要使用
Rails 4)
备注:因为搭建环境十分麻烦,既不像
windows
那样无脑点击安装,又不是像传统的
apt-get
安装,所以针对如何安装
Ruby On Rails
环境请参考附录
1
3.
开发
MVC
框架
我们开发一个发表文章的网站
打开终端
:
测试
rails -v
(如果不可以的话,参看附录一)
(1).
新建一个项目:
rails new demo –skip-bundle (
当前目录下面已经有一个
demo
文件夹
)
(3)
配置项目:
bundle install
(4)
创建一个文章(
Post
)的
Model
类
,然后在创建一个控制类(
PostsController
),可以对文章进行增删改差,在创建一系列的
View
用于现实。我们查看当前目录
demo

在查看
app
目录:
assets controllers helpers mailers models views
其中的
model
对应的就是
model class
,
controller
就是
control class
,
view
就是显示层。
上面试对
MVC
的介绍,下面我们创建这写针对文章
post
的三层结构,之需要一条命令:
rails generate scaffold post title:string author:name content:text
我们需要将这个
model
绑定到数据库:
rake
启动项目:
rails server
测试:
打开浏览器:
localhost:3000/posts/
大功告成,可以增删改差
post
。
(
代码中的是
http://localhost:3000/admins)
4.MVC
在
Rails
中的体现
其中我们执行的最关键的一条命令
rails generate scaffold post title:string author:name content:text
会生成很多的文件:
首先是
Model
层:
在
app/models/
中会有一个文件
posts,
他就是
Model
层的
Class
再者是
Controller
层:处理用户的各种请求,在
app/controllers/
中有一个
posts_cpntroller.rb
就是控制层,会处理各种
http
请求,如增删改查文章。里面有很多的函数和逻辑处理代码。
接着是
View
层面:
在
app/views/posts/
会有
4
个文件,用于不同的方法显示文章,修改文章等等。
这就是三层结构
MVC
。
5.
总结
Rails
是以款非常优秀的开源框架,他将
MVC
架构完美的体现出来,而且十分的轻量级,并且内置了
Server
用于开发,入门非常简单,而且在这个过程中我们只是敲了
4
条命令,和一个启动项目
Server
的命令,便实现了一个简单的网站发表文章的功能。同时还是使用的
MVC
框架实现。所以这是一个开发网站的很好的框架,同时
rails
框架上有很多的开源项目,用于我们的项目开发,如
ckeditor webclip and so on.
通过简单的操作我们已经实现了一个发表文章的功能的网站。如果是软件工程的课程,做一个类似的
bolg
,在添加一个
model comments(
评论
),
这不就是一个软件工程的大作业吗?其实只需要几分钟,这样的一个论坛,或者博客就已经完成了,当你还在
kubi
的抱着厚厚的将近
1000
页的参考书的时候,我已经将项目做完了,虽说是前台显示不怎么好看,但是后台已经写好了,只需要稍加修饰即可。所以还在学习
PHP
,
JSP
,
ASPX
的娃儿,赶紧转到
Ruby On Rails
上面来吧。
附录
1
:安装
Ruby on Rails
环境
首先将如何安装的方式的命令写下来,当安装环境的时候,需要很长的时间,在看看这写看似废话的介绍。
先粘贴安装命令(会遇到各种问题,所以一条一条讲解,先不着急操作)
sudo apt-get update
sudo apt-get install curl
curl -L https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm requirements | sudo apt-get install
rvm install 1.9.3
rvm use 1.9.3 --default
rvm rubygems current
换源
gem install rails 3.2.13
首先确保安装了
Ubuntu OS
,
推荐
12.0
(因为我学习
SE
的时候是大三上,同时也在学习
Linux
课程,所以建议你可以安装双操作系统,其实
Linux
是非常好的开发环境,上面开发
java, Python, Java, Ruby, NodeJs
要远远好过
windows
),并且可以链接网络(安装
iNode
或者
yah3c
)。
1.sudo apt-get update
&&sudo apt-get upgrade
(不废话了)
2.sudo apt-get install curl
(
Ubuntu
依靠软件源安装的一个
curl
工具,就是可以使用命令行下载的工具)
3.curl -L https://get.rvm.io | bash -s stable
下载一个远程的
sh
脚本文件执行,安装上
rvm
。
什么是
RVM
呢?
这里详细介绍一下:
ubuntu
软件安装的方式最常见的就是
sudo apt-get install softwarename.
这个
Ruby On Rails
也可以使用这种方式安装,但是会出现不兼容的各种奇怪的错误,我试过。
比如安装
ruby
,我们使用
spt-get install ruby.
因为以来
ubuntu
的软件源,所以在
source
那里提供的是那个版本就只能安装那个版本了。然后我们安装
rails
,因为
rails
依赖于当前的
ruby
环境(
Ruby
是一种语言,
Rails
是一种框架),所以就会出见各种不兼容的问题。如果使用
apt-get install rails
就会安装到
4.0
但是现在很多的
rails
开源项目还不支持
rails4
,所以。。。打个比方:如果一款手机配置十分好,性能也特别高,唯一的确定就是在这款手机上只有几个软件,那你会去买
?
在回来说说这个
rvm
就是管理
ruby
环境的,一个操作系统上可以安装多个版本的
ruby
语言解释环境。需要使用
rvm
来管理当前使用那一个版本的
ruby
。
4. source ~/.rvm/scripts/rvm
将
RVM
脚本加入到当前的环境,可以执行
rvm
命令
5.rvm requirements | sudo apt-get install
安装
rvm
所需要的环境
6.rvm install 1.9.3
使用
rvm
安装
ruby1.9.3
,如果不可以尝试
rvm install -v 1.9.3
至此我们已经安装好了
ruby 1.9.3
的环境了,做一下测试,在命令行输入
ruby -v
显示的是
ruby 1.9.3
。。。。。
7.rvm use 1.9.3 –default
将
ruby 1.9.3
设置成默认的
ruby
环境,同时也会安装好了
gem
环境
8. rvm rubygems current
测试
gem
:
gem -v
返回
当前的
gem
版本好建议更新一下
gem update –system
什么是
gem
呢?
gem
是一个安装软件的命令,专门针对
rails
的安装工具,相当于
apt-get
。在
Rails
框架中会有很多的开源项目,这写开源项目都是可以用做二次开发的,所以我们把他们集成起来,使用专门的一个服务器去维护,当然,如果你写的代码足够优秀,也可以提交到上面去的。
因为这个服务其在国外,所以访问速度不是一般的慢,即使你的网速足够快,也会出现访问不了的情况,所以需要 (换源),对于
ubuntu
了解的同学一定将
ubuntu apt-get
的
source
换成国内的。在这里我们需要将
gem
的源换成国内的
使用的是
http://ruby.taobao.org/
9.
换源
输入命令
gem sources –l
gem sources -r “
上面输出的内容
”
会显示
成功删除
gem sources -a
http://ruby.taobao.org/
gem sources -l
只显示
taobao
的
source
10.
安装
rails
gem install rails -v 3.2.13
测试:
rails -v
输出
3.2.13
成功安装
Ruby on Rails
环境
可能存在新打开的终端无法执行
rails
一系列命令
重新执行命令
:
source ~/.rvm/scripts/rvm
其实
windows
下面的
Ruby on Rails
我也安装好了,只是十分的麻烦,所以不想在写教程了。而且也不好用。
Yang Tengfei
2013.08.03
于广州中山大学