您的位置:首页 > 编程语言 > Ruby

ruby学习笔记 -- 持续更新

2013-12-20 14:34 323 查看
由于最近工作需要,要对redmine进行修改,其中用到了ruby,毕竟不熟悉,对学习过程做些记录。

学习工具:rubymine / aptana 3,2个办公环境所以选用了2套

学习步骤:

20分钟体验Ruby (http://www.ruby-lang.org/zh_cn/documentation/quickstart/);
ruby api(http://www.ruby-doc.org/);
ruby on rails (http://rubyonrails.org/),3.2api:http://api.rubyonrails.org/v3.2.0/;

%w格式化命令(from qiezi) 可以少打几个引号

%w{a b c d} #等价 ['a', 'b', 'c', 'd']

字符串:

%Q{\n這是一個雙引號的字串\n}=“\n這是一個雙引號的字串\n”


unless的使用

*ruby unless 表达式在条件为false才运行代码块


ActiveRecord

ActiveRecord是Rails进行数据库操作的核心组件。它采用标准的ORM模型,将表映射到类,将行记录映射到实例对象,将字段映射到对象的属性。
参考:http://314858770.iteye.com/blog/691370


rails中validates及各种方法

ApplicationController的Filters

可將Controller中重複的程式抽出來,有三種方法可以定義在進入Action之前、之中或之後執行特定方法,分別是before_filter、after_filter和around_filter,其中before_filter最為常用。這三個方法可以接受Code block、一個Symbol方法名稱或是一個物件(Rails會呼叫此物件的filter方法)。 http://ihower.tw/rails3/actioncontroller.html


ruby中的异常处理:

Ruby 异常处理 rescue与ensure
raise.. #抛出异常
rescue [ExceptionType = StandardException] #捕获指定类型的异常 缺省值是StandardException
retry 用于 rescue 代码表示又重新执行 begin 代码.
ensure #不管有没有异常,进入该代码块


Ruby的标识名区分大小写

Ruby使用一个约定来帮助它区别一个名字的用法:名字前面的第一个字符表明这个名字的用法。局部变量、方法参数和方法名称应该用一个小写字母开头或者用一个下划线开头;

全局变量用美元符作为前缀 $;

而实例变量用 @ 开头;

类变量用 @@ 开头;

类名、模块名和常量应该用大写字母开头。

词首字母后面可以是字母、数字和下划线的任意组合; @ 后面不可以直接跟数字。

each:

(0 .. 10).each {|x|
p x
}


或者:

(0 ... 10).each do |x|
p x
end

[0,1,5].each do |x|
p x
end


读取文件并打印内容:

File.open("E:\\test\\adb.h") do |file|
p file
file.each do |line|
p line
end
end
puts File.exists?($gFile)       #文件是否存在
puts File.directory?($gFile)    #文件是否是目录路径
puts File.file?($gFile)        #是否是文件
puts File.zero?($gFile)        #文件内容长度是否为0
puts File.size($gFile)        #获取文件大小
puts File.readable?($gFile)    #文件是否可读
puts File.stat($gFile)        #文件状态,文件实例
puts File.basename($gFile,".c")   # 文件名称


打印目录:

Dir.foreach("E:\\test\\adb\\") do |ff|
puts ff
end


这儿有文件例子:http://blog.csdn.net/passionboyxie/article/details/7377753

ascii 和 char的转换:

#ascii => char
irb(main):008:0* 97.chr
=> "a"
# char=>ascii
# http://chinacheng.iteye.com/blog/1537113[/code] 
参考:http://www.iteye.com/topic/24642
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: