RAILS 学习日记 --扩展
对象内容判断.
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 学习日记 --扩展相关推荐
- FireBird Embedded学习日记
FireBird Embedded学习日记 FireBird简介 Firebird是一个真正的关系数据库,支持存储过程.视图.触发器.事务等大型关系数据库的所有特性:不用考虑授权费用(免费),不用 ...
- Vue2源码的学习日记(3)
组件化 (在文章中的一切源码大部分都是只给出头部,因为源码是开源的(Vue2.6),我认为在自己去边查找边看的过程也能提升到自己) 续学习日记(2)后,便开始慢慢走向vue这个框架的核心,希望能帮到大 ...
- Eaglooe 学习日记1
** Eaglooe 学习日记1 ** 开发环境配置 MSDN我告诉你 https://msdn.itellyou.cn/ WIN10操作系统下载地址(电驴) ed2k://|file|cn_wind ...
- 210学习日记(18)_ARM基础知识
210学习日记(18) --ARM基础知识 注意: 以下大部分类容都来自网上现成的(直接拷贝过来的,然后经整理)!!!! 问1:ARM处理器工作模式有几种?各种工作模式下分别有什么特点? 答1:ARM ...
- 尚学堂Java学习日记Day1
尚学堂学习日记Day1 #今天开始写学习博客记录自己学习java的点滴成长历程,希望能成为学弟学妹们的前车之鉴. 先大概的自我介绍下,我原本从事的是网络工程师,学习的是Cisco(思科)并拥有CCNP ...
- Activity学习日记(一)
Activity学习日记(一) 学习目标 android的发展历史,以及android和java的关系 掌握android开发环境搭建 创建第一 ...
- RUST 学习日记 第8课 ——类型转换
RUST 学习日记 第8课 --类型转换 0x00 回顾 上一节讲解了字面量和常见一些运算符,还记得上节课最后留了一个练习题吗. 小明有5块钱,小红有3块5,小明和小红总共有多少钱呢? 你们成功运行出 ...
- Java学习日记8:文件上传工具类的实现和服务器给客户端发送图片
文件上传的工具类: 每次文件上传要写很多东西,把这些封装成一个工具类,以后用起来就会方便很多. 先创建一个类存储上传文件的信息: package com.upload; /*** 每上传成功一个文件的 ...
- c语言实训自我总结报告日记,C语言学习日记(1)-准备好工具
小猫开始学习C语言啦,首先选个喜欢的工具吧.C语言开发工具真多啊,什么C-Free,Code Lite,Code::Blocks,DevC++,VisualStudio,CLion等,这些工具里面Vi ...
最新文章
- 【免费获取】80+页PPT全方位解读半导体行业
- kendoui仪表盘和柱状图 示例
- asp.net在线压缩和解压缩的实现
- 如何通过IP定位交换机
- andriod手机客户端自动化测试工具整理
- EShop网上商城项目(二)
- DVWA系列之23 medium级别上传漏洞分析与利用
- poj 1325 Machine Schedule 匈牙利二分匹配 基础
- VM14Pro下打开虚拟机黑屏及其衍生问题的解决方案
- CentOS系统简介
- 如何将成绩用C语言分,如何利用C语言实现简单的分数化简
- Zint生成二维码及png操作
- 图片转换js (img对象,file对象,base64,canvas对象),以及图片压缩方式
- Cadence Allegro颜色显示设置图文教程及视频演示
- 用Keras解决机器学习问题!
- 中年危机如何化解分析
- 蓝牙MESH网关_【全屋智能照明】能动口不动手!米家LED筒灯球泡 MESH组网
- Deep learning for drug repurposing: methods, databases, and applications
- 嵌入式系统项目设计——电子琴(完整代码)
- 自顶向下浅析go-iris框架