首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

读ruby on rails fat_free_crm札记

2012-08-31 
读ruby on rails fat_free_crm笔记?mysql in 用法 ?in中可以接受一个多个值mysql upper用法 将参数转为大

读ruby on rails fat_free_crm笔记

?

mysql in 用法 ?in中可以接受一个多个值

mysql upper用法 将参数转为大写

mysql like %query% query 前面的百分号表示query前面的0或多个字符,query 后面的百分号表示query后面的0或多个字符

'hello'.gsub(/正则表达式/, '替换的值') ?gsub方法的用法就用将一个字符串去匹配参数一中的正则表达式,用第二个参数的值去替换匹配出的字符

' ?hell0 ?'.strip ?表示去除字符串前后的空格

'hello'.is_a(String) 是判断'hello'是不是String类的一个实例

'Hello'.downcase ? 将这个字符串中的大写字母转为小写

'Hello'.tableize 将这个字符串转为表的名字比如 'Hello'.tableize--> hellos

:hello 是ruby中的Symbol

'hello'与:hello区别

a = 'hello'?

b = 'hello'

当把'hello'赋值给a的时候,内存给a分配了一个内存空间

当把'hello'赋值给b的时候,内存给b又分配了一个内存空间

:hello

a = :hello?

b = :hello

当把:hello赋值给a的时候,其实是把:hello的引用给了a

当把:hello赋值给b的时候,其实是把:hello的引用给了b

?

user.send(:username) == user.username

?

unless 除非什么??

? false

? do ....

end

? true

? do....?

?

has_one :dependent => :nullify 表示将外健设置为null

has_one :conditions => 条件 ? 指定关联的对象必须满足conditions条件的

?

accepts_nested_attributes_for :address, :allow_destroy => true # 创建 address_attributes= ? allow_destroy表示这个属性可以被销毁

?

在where中,可以用? 做占位符,如果这个参数在多个地方都用到,可以用Symbol类型占位符,写法 where('a = (:a)',:a=xxx)

?

validates_presence_of if true就去验证,false不去验证

?

def self.per_page ; 20 ? ? ? ? ? ? ? ? ?; end ?一些很短的方法可以用这种形式写,;代表这这行语句的结束

?

super()调用父类的super所在的那个方法,super在那个方法调用,就去调用父类的这个方法

''.nil? 判断这个字符串是不是nil ''不等于nil

''.blank? 判断这个字符串是不是空白,''也属于空白

''.present? 判断这个字符串是不是存在,''也属不存在

?

has_many ?:through 是指通过那个model来关联

?

正则表达式

| 左右两边表达式之间 "或" 关系,匹配左边或者右边

()

(1). 在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰

(2). 取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到

? 举例5:表达式 "Tom|Jack" 在匹配字符串 "I'm Tom, he is Jack" 时,匹配结果是:成功;匹配到的内容是:"Tom";匹配到的位置是:开始于4,结束于7。匹配下一个时,匹配结果是:成功;匹配到的内容是:"Jack";匹配到的位置时:开始于15,结束于19。

? 举例6:表达式 "(go\s*)+" 在匹配 "Let's go go go!" 时,匹配结果是:成功;匹配到内容是:"go go go";匹配到的位置是:开始于6,结束于14。

? 举例7:表达式 "¥(\d+\.?\d*)" 在匹配 "$10.9,¥20.5" 时,匹配的结果是:成功;匹配到的内容是:"¥20.5";匹配到的位置是:开始于6,结束于10。单独获取括号范围匹配到的内容是:"20.5"。

?

(?:pattern)匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。

?

"hello abc haha denghaigui".strip.split(' ') ?--> ["hello", "abc", "haha", "denghaigui"]

%w(a, b, c) --> ["a, b, c"]

''.intern 将字符串转为Symbol类型

a = [1,2,3,4,5] ?a.reverse[0] --> 5 反向取出 ?a[1..3] --> 2,3,4 从下标第1个开始,到下标第3个结束 ?a[-1] --> 5 下标是负数这表示从数组的尾部开始获取从-1开始

[].empty? 判断数组是否为空

{}.empty? 判断Hash是否为空

users << user # users is Array ,user is object ‘<<’表示把右边的添加到左边数组中,就像调用users.push(user)

?

大量使用了 ?do... if boolean ? ? ?让代码更佳简洁清爽

? ? ? ? ? do... unless boolean

?

*args 可变参数,

def test(*args)

? ?a = args[0] --> 1

? ?a = args[1] --> 2

? ?a = args[2] --> 3

? ?a = args[3] --> 4

end

test(1,2,3,4)

?

includes和joins去区别

joins会产生 1+N 问题?

includes不会

?

Time.zone.now.midnight.utc 就是得到今天00:00:00的UTC时间

Time.zone.now.midnight.tomorrow.utc 就是得到明天00:00:00的UTC时间

Time.zone.now.midnight.tomorrow.utc+ 1.days 就是得到后天00:00:00的UTC时间

Time.zone.now.beginning_of_month.utc 这个月的第一天

Time.zone.now.beginning_of_week.utc ?第一个工作日 星期一开始算第一个工作日

Time.hour 获得小时

Time.min ?获得分钟

Time.sec ?获得秒钟

?

''.constantize 试图去上下文找与字符串中指定的名称的类

?

rescue 错误或异常 ?当这个方法出现错误或异常的时候,就会去做do...

? do...

end

?

cattr_accessor :name #cattr_reader:name cattr_writer:name

?

cattr_reader:name

cattr_writer:name

?

def name # cattr_reader:name

? @name

end

?

def name=(:args) #cattr_writer:name

? @name = :args ?

end

?

ASSETS = %w(all tasks campaigns leads accounts contacts opportunities) 大写字母定义的变量我们叫它常量

?

?

[].include?(args) 判断数组中是否包含args

?

Object.freeze 冻结,不能修改的

Object.dup ?浅拷贝一份Object对象


热点排行