ruby学习笔记 -- 持续更新

来源:互联网 发布:mac钥匙串密码忘记 编辑:程序博客网 时间:2024/06/05 00:45

由于最近工作需要,要对redmine进行修改,其中用到了ruby,毕竟不熟悉,对学习过程做些记录。


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

学习步骤:

  1. 20分钟体验Ruby (http://www.ruby-lang.org/zh_cn/documentation/quickstart/);
  2. ruby api(http://www.ruby-doc.org/);
  3. 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] #捕获指定类型的异常 缺省值是StandardExceptionretry 用于 rescue 代码表示又重新执行 begin 代码.ensure #不管有没有异常,进入该代码块


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

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

而实例变量用 @ 开头;

类变量用 @@ 开头;

类名、模块名和常量应该用大写字母开头。
词首字母后面可以是字母、数字和下划线的任意组合; @ 后面不可以直接跟数字。


each:

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

或者:

(0 ... 10).each do |x|   p xend [0,1,5].each do |x|   p xend

读取文件并打印内容:

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


打印目录:

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

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


ascii 和 char的转换:

#ascii => charirb(main):008:0* 97.chr=> "a"# char=>ascii# http://chinacheng.iteye.com/blog/1537113




参考:http://www.iteye.com/topic/24642


0 0
原创粉丝点击