数字取绝对值
c = -166.abs
定义函数
def hello(name)
result = “hello, ” + name
return result
end
def hello name
if , when 函数都以一个 end 关键字来结束
在 ruby 中,函数的最后一条语句如果是表达式,那么它就作为返回值。
字符串中插入了变量 name ,字符串中插入变量以 # 开始,变量放在{}中
def hello (name)
” hello, #{name}”
end
特殊变量可以不用 {}.全局变量以 $开头,静态变量,也就是类变量以 @@ 开头,实例变量以 @ 开头
字符串中引用 实例变量
def hello
” hello, #@name”
end
==============================
interator (迭代器)
如何打印从1到6的结果
6.times {|i| p i }
每个函数可以不光带有参数,还可以在参数后面带一个代码块。代码块在 ruby 中是以 {} 和 do end 来包围起来的。通常如果是单行使用 {} ,如果是多行这使用 do end
代码块和参数并不相同,它和函数的执行可以说是并行的,确切的说是接替进行。如果在函数内部如何在运行过程中碰到了 yield ,它就会将函数执行过程交给函数附带的代码块来执行,代码快执行完了,执行流程转到函数内部继续运行。
def callBlock
yield
yield
end
callBlock { puts “In the block” }
输出:
In the block
In the block
在函数内部使用 yield 还可以带任意多参数。比如
yield a, b, c
这三个参数对应代码块中的三个参数 {|x,y,z| p x y z }
================================
[url]http://www.rubyonrails.org/down[/url]
One-Click Ruby Installer for Windows
[url]http://rubyinstaller.rubyforge.org/wiki/wiki.pl[/url]
rubygems 包管理器
gem -h/–help – 显示 rubygem 的帮助
gem -v/–version – 显示 rubygem 的版本
gem list –local – 用子命令 list 列出本 gems
gem install rails –include-dependencies 显示从远程安装rails
gem install rails 先判断本地,,再决定远程
一般来说,安装rails 需要的包有 rake (这是类似 java ant 的 build 程序),
activerecord(rails 依赖的 orm 工具,也就是 MVC 中的 Model 模块),actionpack (对应的
controller 模块)。 你可能会问那么相应的 view 模块怎么没有安装,因为 view 模块已经在默认的 ruby 安装中包含了,就是 eruby, 它的作用就是完成对模板文件 .rhtml 的解释。
安装ruby:
从 [url]http://www.ruby-lang.org/en/[/url] 下载 ruby182-15.exe,安装Ruby。
运行ruby -v版本号,表示ruby安装成功。
rails通过远程安装什么简单: 运行 gem install rails –include-dependencies即可。
本地安装则复杂得多,但有时由于上网条件有限就不得不在本地安装。
从 [url]http://www.rubyonrails.org/[/url] 下载 rails-1.1.6.gem,安装Rails。
Rails 需要依赖下面几个库,而且版本依赖很严格,从 [url]http://rubyforge.org/[/url] 搜索下载。
activesupport-1.3.1.gem
activerecord-1.14.1.gem
actionpack-1.12.5.gem
actionpack-1.12.5.gem
actionmailer-1.2.5.gem
actionwebservice-1.1.6.gem
运行如下命令进行安装:
gem install activesupport-1.3.1.gem
gem install activerecord-1.14.1.gem
gem install actionpack-1.12.5.gem
gem install actionmailer-1.2.5.gem
gem install actionwebservice-1.1.6.gem
运行 rails -v 显示版本号,表示安装成功。
手工安装非常麻烦,可以从 [url]http://instantrails.rubyforge.org/[/url] 下载InstantRails,全部搞定。包括mysql, apache
命令行操作
工作目录D:\railsdoc>
D:\railsdoc>rails mybook 建立目录文件夹
cd mybook
ruby script\server 启动webrick服务器
编写脚本运行web服务器
====================
require “webrick”
httpd = WEBrick::HTTPServer.new(
:DocumentRoot=>Dir::pwd + “/ruby”. //服务器文档根目录
:Port = > 3000 //服务器端口
)
trap(:INT){httpd.shutdown}
httpd.start
====================
主要集中在创建和编辑apps目录
Controllers 存放controller类,处理来自用户的web请求
views 存放相应模板文件,转换为html格式传递给用户的浏览器
models 存放数据模型
helpers 存放了简化Controllers,models,views使用的帮助类
生成默认的controller文件
ruby script\generate controller MyTest
app\controllers目录中将生成一个包含MyTestController类定义骨架的名为my_test_controller.rb的文件
默认rails需要在控制器类中找一个index的方法
在运行ruby script\generate controller MyTest的时候,rails做了一些默认的假设,MyTest对应的controller文件是my_test_controller.rb,文件中控制器类名是MyTestController,而url映射是/My_Test/
config\database.yml数据库链接
将ruby对象保存到yaml文件中
require ‘yaml’
tree={:name=>’ruby’,
:uses=>[‘script’,’web’,’testing’,’etc’]
}
File.open(“tree.yaml”.”w”){|f|YAML.dump(tree,f)}
在ruby中读取yaml文件
require ‘yaml’
tree = YAML.load(File.open(“tree.yaml”))
tree[:uses][1]
ruby script\generate model book
rails 生成 Model 类 Book 的骨架文件 book.rb
ruby script\generate controller book 生成controller骨架文件
scaffold :book 这句是你惟一需要写的代码,它生成了数据库表对应的 CRUD 操作
scaffold :book 会生成 list, show, edit, delete 四个操作
@books = Book.find_all
find_all 函数从数据库表 books 中把所有记录读出赋值到 @books 实例变量中
===================================================
ide操作
RadRails IDE [url]http://www.web20.com/downloads/radrails-0.7.2-win32.zip[/url]
[url]http://www.aptana.com/docs/index.php/Integrating_RadRails_with_Aptana[/url]
RDT for eclipse [url]http://sourceforge.net/project/showfiles.php?group_id=50233[/url]