对象内容判断.

nil  和 false 对象 ,返回 true.

数值 和 TRUE 则始终返回 false.

其它对象,如为空时,返回 true,

如对象是字符串,会先剥离前后空格,再进行检查是否为空.

puts [ ].blank?                                 #=> true

puts { 1 =>2}.blank?                      #=>false

puts "cat".blank?                             #=>false

puts "".blank?                                  #=>true

puts "   ".blank?                               #=>true

puts nil.blank?                                  #=>true

枚举与数组.Enumerations and Arrays

groups = posts.group_by {post|post.author_id}

us_states = state.find(:all)

state_lookup = us_states.index_by(|state| state.short_name)

puts[ "ant", "bat", "cat"].to_sentence #=>"ant,bat,and cat"

puts[ "ant", "bat", "cat"].to_sentence(:connector=> "andnotforgetting")
#=>"ant,bat,and not forgetting cat"

puts[ "ant", "bat", "cat"].to_sentence(:skip_last_comma=> true)
#=>"ant,bat and cat"
[1,2,3,4,5,6,7].in_groups_of(3) {|slice|putsslice.inspect}
#=>[1,2,3]
[4,5,6]
[7,nil, nil]

[1,2,3,4,5,6,7].in_groups_of(3,"X"){|slice|putsslice.inspect}
#=>[1,2,3]
[4,5,6]
[7,"X", "X"]

字符串扩展   String  Extensions

string= "Nowisthetime"
putsstring.at(2) #=>"w"
putsstring.from(8) #=>"hetime"
putsstring.to(8) #=>"Nowisth"
putsstring.first #=>"N"
putsstring.first(3) #=>"Now"
putsstring.last #=>"e"
putsstring.last(4) #=>"time"
putsstring.starts_with?("No") #=>true
putsstring.ends_with?("ME") #=>false
count=Hash.new(0)
string.each_char{|ch|count[ch]+=1}
putscount.inspect
#=>{""=>3,"w"=>1,"m"=>1,"N"=>1,"o"=>1,
"e"=>2, "h"=>1, "s"=>1, "t"=>2, "i"=>2}

puts "cat".pluralize #=>cats
puts "cats".pluralize #=>cats
puts "erratum".pluralize #=>errata
puts "cats".singularize #=>cat
puts "errata".singularize #=>erratum
puts "first_name".humanize #=>"Firstname"
puts "nowisthetime".titleize #=>"NowIsTheTime"

depot> rubyscript/console
Loadingdevelopmentenvironment(Rails2.1).
>>"goose".pluralize
=>"gooses"

RAILS 学习日记 --扩展相关推荐

  1. FireBird Embedded学习日记

    FireBird Embedded学习日记   FireBird简介 Firebird是一个真正的关系数据库,支持存储过程.视图.触发器.事务等大型关系数据库的所有特性:不用考虑授权费用(免费),不用 ...

  2. Vue2源码的学习日记(3)

    组件化 (在文章中的一切源码大部分都是只给出头部,因为源码是开源的(Vue2.6),我认为在自己去边查找边看的过程也能提升到自己) 续学习日记(2)后,便开始慢慢走向vue这个框架的核心,希望能帮到大 ...

  3. Eaglooe 学习日记1

    ** Eaglooe 学习日记1 ** 开发环境配置 MSDN我告诉你 https://msdn.itellyou.cn/ WIN10操作系统下载地址(电驴) ed2k://|file|cn_wind ...

  4. 210学习日记(18)_ARM基础知识

    210学习日记(18) --ARM基础知识 注意: 以下大部分类容都来自网上现成的(直接拷贝过来的,然后经整理)!!!! 问1:ARM处理器工作模式有几种?各种工作模式下分别有什么特点? 答1:ARM ...

  5. 尚学堂Java学习日记Day1

    尚学堂学习日记Day1 #今天开始写学习博客记录自己学习java的点滴成长历程,希望能成为学弟学妹们的前车之鉴. 先大概的自我介绍下,我原本从事的是网络工程师,学习的是Cisco(思科)并拥有CCNP ...

  6. Activity学习日记(一)

                                Activity学习日记(一) 学习目标 android的发展历史,以及android和java的关系 掌握android开发环境搭建 创建第一 ...

  7. RUST 学习日记 第8课 ——类型转换

    RUST 学习日记 第8课 --类型转换 0x00 回顾 上一节讲解了字面量和常见一些运算符,还记得上节课最后留了一个练习题吗. 小明有5块钱,小红有3块5,小明和小红总共有多少钱呢? 你们成功运行出 ...

  8. Java学习日记8:文件上传工具类的实现和服务器给客户端发送图片

    文件上传的工具类: 每次文件上传要写很多东西,把这些封装成一个工具类,以后用起来就会方便很多. 先创建一个类存储上传文件的信息: package com.upload; /*** 每上传成功一个文件的 ...

  9. c语言实训自我总结报告日记,C语言学习日记(1)-准备好工具

    小猫开始学习C语言啦,首先选个喜欢的工具吧.C语言开发工具真多啊,什么C-Free,Code Lite,Code::Blocks,DevC++,VisualStudio,CLion等,这些工具里面Vi ...

最新文章

  1. 【免费获取】80+页PPT全方位解读半导体行业
  2. kendoui仪表盘和柱状图 示例
  3. asp.net在线压缩和解压缩的实现
  4. 如何通过IP定位交换机
  5. andriod手机客户端自动化测试工具整理
  6. EShop网上商城项目(二)
  7. DVWA系列之23 medium级别上传漏洞分析与利用
  8. poj 1325 Machine Schedule 匈牙利二分匹配 基础
  9. VM14Pro下打开虚拟机黑屏及其衍生问题的解决方案
  10. CentOS系统简介
  11. 如何将成绩用C语言分,如何利用C语言实现简单的分数化简
  12. Zint生成二维码及png操作
  13. 图片转换js (img对象,file对象,base64,canvas对象),以及图片压缩方式
  14. Cadence Allegro颜色显示设置图文教程及视频演示
  15. 用Keras解决机器学习问题!
  16. 中年危机如何化解分析
  17. 蓝牙MESH网关_【全屋智能照明】能动口不动手!米家LED筒灯球泡 MESH组网
  18. Deep learning for drug repurposing: methods, databases, and applications
  19. 嵌入式系统项目设计——电子琴(完整代码)
  20. 自顶向下浅析go-iris框架

热门文章

  1. 组合部分标签向量并累加成完整向量
  2. 冒泡排序选择排序 以及时间效率对比
  3. iOS开发学习之MapKit - 获得在MapView(地图)中显示多个标记的区域(MKCoordinateRegion)...
  4. es6 的数组的方法
  5. echarts 柱状图
  6. 内网网段划分ciso交换机配置
  7. ORA-15260: permission denied on ASM disk group
  8. PHP获取客户端的真实IP
  9. 结构化程序设计03 - 零基础入门学习Delphi12
  10. 利用kinect检测任意平面