4.Model类方法
在Model中定义的方法一般分为两种:
1).类方法,
定义:def self.find_me...
调用:Friend.find_me
2).实例方法,
定义:def find_me...
调用:@friend.find_me
5.跳过layout渲染
当我希望所有umails的视图都被一个模板渲染时,可以这样子做:
class UmailsController < ApplicationController
layout 'layouts/users'
....
end
但是有时候,我希望umails视图中的部分视图不被渲染,可以这样子做:
class UmailsController < ApplicationController
layout 'layouts/users',:except=>['show']
....
end
6.firefox貌似不支持
删除
你必须
'newsForm')" class="bluelink">删除
否则一点反应都没有
7.当你在后来添加/修改一个rake任务后,如何让rake再次执行
比如说你添加了一个:030_add_area.rb
首先执行:rake db:migrate version=29
这时候,scheme_info中的version=29了。
接下来再次执行:rake db:migrate
这时候,它会执行当前version以后的任务,当然就执行30的version咯
ruby 文本转时间
str ="Tue, 10 Aug 2010 01:20:19 -0400 (EDT)"
date =Date.parse str
=>#
puts date
2010-08-10
str ="Tue, 10 Aug 2010 01:20:19 +0400"
puts Date.parse str
2010-08-10
puts Date.parse(Time.parse(str).utc.to_s)2010-08-09
Ruby 转义字符
str = str.gsub('<', '<')
str = str.gsub('>', '>')
str = str.gsub(/['"]/, '"')
str = str.lstrip #去掉前后空格
str = str.delete("\n\r") #去掉换行符
str = str.delete(" ")#去掉tab
RUBY获取字符串前N个字或后N个字
str = "hello word"
puts str[0,5] #获取前5个字 hello
puts str[6,2] #获取第6个字后的2个字 wo
puts str[-4,4] #获取最后4个字 word
ruby 1.8.7+rails 2.3.8 中文似乎为3个字符
equal?
我们经常要比较两个对象,Ruby中提供了多种比较对象的方法。我们可以通过equal?方法比较两个对象是否相同,通过这种方式是比较两个值是否指向同一个对象的引用。比如:
a = "Ruby" # 一个字符串对象。 b = c = "Ruby" # 两个字符串对象指向动一个引用。 a.equal?(b) # false: a和b是不同的对象。 b.equal?(c) # true: b和c指向同一个引用。
这种比较方式实际上是比较两个对象的ID是否相同,显然a是一个对象,而b和c指向另一个对象,他们的对象ID是不同的:
a.object_id == b.object_id # 等同于 a.equal?(b)
b = "Ruby" # 虽然和a的内容相同,但是他们是不同的对象 a.equal?(b) # false: a和b指向不同的对象 a == b # true: 他们的内容是相同的
除了字符串外,数组和字典类也定义了==操作符,如果两个数组或两个字典对象中元素个数相同,且每个元素都相同,那么==返回true.
(1..10) === 5 # true: 5属于range 1..10
/\d+/ === "123" # true: 字符串匹配这个模式 String === "s" # true: "s" 是一个字符串类的实例 :s === "s" # true
两个点("..")表示范围,两个点(".. ")表示包含尾部元素,三个点("...")表示不包含尾部元素。