Ruby On Rails基本概念说明

作者: Jason Cui
发布时间:2015-07-13 11:30:32

虽然相同的教程网上已经有不少了,但是还是自己写一篇吧,加深一下自己的印象,也整理一下最近的思路。几本教程一起看,思路有些乱了。

安装:在Linux上可以安装Ruby的发行版,或者自己下载源码编译,跟普通的程序没有区别。Windows下可以下载Ruby的一键安装程序,包括了Ruby本身,和几个附带的小程序。最重要的一个是RubyGem。在Linux上,安装完成Ruby之后要手动安装RubyGem。下载解压以后,运行Ruby Setup.rb就可以了。在Linux上编译Ruby的时候,确保机器已经安装了Zlib和Readline的开发包。

Gem是Ruby自己实现的一个包管理程序,相当于Linux上的RPM或者APT。能够管理所有自己的插件,实现自动安装,自动更新。装完了Gem就可以安装Rails了,后面的步骤在Linux上和Windows上是一致的。

运行gem install rails -y,这个命令会自动下载并安装Rails所需要的所有东西。完成以后安装gem install mongrel -y,这个是运行ROR的Web服务器,虽然Rails已经自带了一个Server脚本,不过这个更加强大,而且可以以后台服务器的方式运行,不需要一直开着一个Commond窗口。另外,还需要安装Mysql的支持程序。gem install mysql。在Linux上,如果是自己编译安装的Mysql,需要加参数。gem install mysql -- --with-mysql-dir=/opt/mysql。

然后可以开始写一个Rails项目了。在命令行下,进入一个空的项目目录,运行rails test,就会在这个目录下生成一个test目录,里面包含了整个网站的框架目录结构。所有的静态网页,CSS,JS,图片文件,都放在public目录下。网站程序都在app目录下,分别是Model,View,Controller和Helper。进入test目录,运行ruby script\generator controller say

该命令会新建几个相关的文件,在app/controller下面新增saycontroller.rb,以及test目录下的相应的单元测试文件。在saycontroller.rb文件中只有一个空的类定义。我们可以给它增加一个方法。

def hello

end

这是个空的方法。运行ruby script\server,就可以启动它自带一个简化的Web服务器,默认端口3000,而且只能以localhost访问。(可以加参数修改这两个定义)。然后在浏览器中打开localhost:3000/say/hello,会出现一个错误页面,提示找不到对应的hello模板文件。对于controller中每一个方法,在执行完毕之后,都会自动到views目录中找到它所对应的模板文件,并显示。所以到view目录中的say目录下,新建一个hello.rhtml,其内容就是一个普通的HTML文件。其中可以用<% %>的方式来执行Ruby代码,跟ASP一样。回到浏览器,刷新,可以看到页面了。

跟数据库相关的操作:修改config目录下的database.yml,设置好数据库的连接属性。新建一个Model,ruby script\generator model user。会在Model目录生成一个user.rb,里面是这个类的定义。如果是空的,它会自动到数据库中的users表里查询定义。Ruby会自动完成单数复数的对应关系。在db\migrate目录下会增加一个rb文件,里面是user表的生成脚本,看注释就可以明白了。在这里添加完该表的字段,运行rake db:migrate,就可以自动完成数据表的创建。然后在你的controller里调用它的方法,在view里显示就可以了。

在controller中的方法最后使用@user的方式可以将变量传递到view中,在view里使用@user.name就可以显示用户的名字了。

来源:http://www.cnblogs.com/unfish/archive/2006/10/15/529380.html

推荐: