一、 renderhtml
一下三种渲染方式的渲染结果是同样的:ruby
render(:text=>"<h1>hello world!</h1>") render text:"<h1>hello world!</h1>" render html:"<h1>hello world!</h1>".html_safe
渲染结果:less
render html:"<h1>hello world!</h1>"
渲染结果:spa
因此,在返回html时,若是不调用html_safe方法,html是没法正确解析的。code
二、empty、blankhtm
"somestring".empty?=>false对象
"".empty?=>trueblog
nil.empty?=>NoMethodError: undefined method `empty?' for nil:NilClass(nil不支持empty方法)string
nil.to_s.empty?=>trueclass
" ".empty?=>false
" ".blank?=>true
nil.blank?=>true
三、nil
nil.nil?=>true
xx.nil?=>false(除了nil之外全部对象nil的结果都为false)
同理,除了!!nil=>false之外,全部的!!xx都为true,包括!!0=>true
四、unless
和if not相对应,if是在后面添加为真时执行,而unless是在后面条件返回值为false时才会执行
五、! bang
a = [42, 8, 17]
a.sort=>[8,17,42]
a=>[42,8,17] #执行sort方法时,对象a自己并无发生变化
a.sort!=>[8,17,42]
a=>[8,17,42] #执行sort!方法时,对象a自己也变化了,这就是所谓的炸弹(bang!)方法
六、运算符
除法运算符, 1/10 ->0 9/10->0
在ruby中,两个整数类型的数字进行运算,获得的结果默认仍然是整数,并且没有四舍五入,因此在ruby中若是两个整数进行除法运算,并且但愿能够获得精确值,应该想将其中一个数字转换为浮点数再进行运算,例如:1/10.0->0.1