rails
对
ruby
的扩展
1
对象扩展
rails
对
ruby
的扩展
将
ruby
对象转化成
json
格式
:
对象为:
new
(“
rails
“,
[10,10,9,1]
)
#=>
对象
.to_json
对象变成了
["rails",[10,10,9,1]]
2
空值检测扩展
检查对象是否为空:对象
.blank?
空则返回
false
不空则返回
true
3
枚举数组扩展
集合
.group_by
{
|post| post.author_id
}对集合进行分组。返回一个
hash
,键为对象的
author_id,
每个键所对应的值为
author_id
对应的数组
集合
.sum{|order| order.value}
对集合中每一个对象的
value
值进行加和
4
字符串扩展
1
)连接字符串
“
Jack”+”wang”
#=>”jackwang”
2
)字符串乘法
“happy”*3
#=>”happyhappyhappy”
3
)字符串比较
(
实际是对字符
ASCII
值进行比较
)
“x”>”y”
#=>false
“y”>”x”
#=>true
4
)求字符串
ASCII
值用
?字符串
?x
#=>#120
?y
#=>#121
5
)数字代表的字符
120.chr
#=>x
121.chr
#=>y
6
)需要替换的表达式放入
#
{}
x=5 y=6 puts “#{x}+#{y}”
#=>5+6
7
)字符串中插入字符串变量
man=”jack”
“#{man} is handsome”
#=>jake is handsome
8
)字符串常用方法
“jack”.capitalize
#=>Jack
“Jack”.downcase
#=>jack
“Jack”.chop
#=>jac
去掉最后一个字母
“Jack”.hash
#=>540559965
“Jack”.next
#=>jacl
最后一字符
ASCII
加
1
“Jack”.reverse
#=>kcaJ
将字母倒序输出
“Jack”.sum
#=>337
每个字母的
ASCII
值相加
“Jack”.swapcase
#=>jACK
字母大小写取反
“Jack”.upcase
#=>JACK
将字母全部转换成大写
“jack”[0,2]
#=>ja
“jack”.slice(0,2)
#=>ja
“hello”.count(“l”)
#=>2
9
)替换字符串的某一范围内的值
a=”hello world”
a[1,3]=”jack”
#=>a
的值为
Hjacko world
10
)删除字符串
“hello”.delete(“l”,”lo”)
#=>he
11
)判断空
a=””
a.empty?
#=>true
b=”jack”
b.empty?
#=>false
12
)以
replace
来替换字符串中所有与
pattern
相匹配的部分
“hello”.gsub(/[aeiou]/, ‘*’)
#=>h*ll*
13
)用
replace
来替换首次匹配
pattern
的部分
“hello”.sub(/[aeiou]/, ‘*’)
#=>h*llo
14
)判断包含指定字符串
(
指定的是字符串,若下例中指定
”ho”
则也不成
)
“hello”.include? “lo”
#=>true
“hello”.include? “a”
#=>false
15
)返回搜索到指定字符串左侧位置
“hello”.index(‘lo’)
#=>3
“hello”.index(‘a’)
#=>nil
16
)对字符串中各行迭代操作,对各个字节进行迭代操作
“Hi\nRuby”.each {|s|
puts s}
#=>Hi Ruby
“Hi\nRuby”.each_line {|s|
puts s}
#=>Hi Ruby
“Hi\nRuby”.each_byte
{|s|
puts s}
#=>72 105 10 82 117 98 121
17
)拆分字符串
“mellow yellow”.split(“ello”)
#=>m,w y,w
18
)压缩重复的字符串
“yellow moon”.squeeze
#=>yelow mon
19
)删除头部和尾部的所有空白字符。空白字符是指
””t”r”n”f”v”
“
hello
”.strip
#=>hello
20
)字符串的遍历
字符串对象
.at(2)
选择字符串中第
3
个字符
字符串对象
.from(8)
选择第
8
位开始以后的字符串
字符串对象
.to(8)
选择第
8
位字符串之前的字符串
字符串对象
.first
选择字符串中第一位字符
字符串对象
.first(3)
选择前
3
位字符
字符串对象
.last
选择最后一个字符
字符串对象
.last(3)
选择后
3
个字符串
字符串对象
.starts_with?(“no”)
是否以
no
开头
返回
true
或
false
字符串对象
.ends_with?(“me”)
是否以
me
结尾
返回
true
或
false
字符串对象
.each_char {|ch| …..}
遍历字符串中每一个字符
字符串对象
.pluralize
将字符串转化成复数
字符串对象
.singularize
将字符串转化成单数
5
数值的扩展
6
时间和日期扩展
Time.now
当前时间
Date.today
当前日期
20.
计时单位
.ago
20
分
/
时
/
天
/
星期之前
20.
计时单位
.from_now
20
分
/
时
/
天
/
星期之后
时间与数据库可以接受的字符串格式的转化
Time.now.to_s(:db)
字符串(符合时间的字符串)
将日期转化成数据库可以接受的字符串格式
Date.today.to_s(:db)
时间日期相互转化
Time.now.to_date
Date.today.to_time
注:时间类型之间可以互相运算,结果是天数
7Ruby
符号的扩展
对于迭代器中{}里被迭代的对象
可以用{
&
:属性}注意:只适合迭代对象的属性的。若是被迭代对象不只主要语句快执行的内容则不能够实现如:{
|ch| count[ch]
}的语句快就不适合
8Unicode
扩展(见书)
分享到:
相关推荐
- **推动者**:Dave Thomas和他的Pragmatic Programmers团队对Ruby on Rails的发展起到了重要的推动作用。 #### 四、Rails简介 Ruby on Rails是一个开源Web框架,专注于提升程序员的工作效率和产品的可持续性。它的...
在Rails 2.2.3时代,社区已经发展出很多插件和 gems(Ruby的扩展库),如Devise用于身份验证,CanCanCan进行授权管理,Paperclip或Carrierwave处理文件上传等。虽然这些可能需要适配老版本,但它们能极大地增强你的...
使用Ruby on Rails最新版进行开发,开发者不仅可以享受到高效的开发流程,还能通过强大的社区支持和丰富的第三方库(如Gem)扩展其功能。例如,Devise用于用户认证,CanCanCan用于授权管理,Paperclip或Carrierwave...
随着学习的深入,你将探索更高级的主题,如AJAX集成、Caching技术以提升应用性能,以及如何利用gem(Ruby的库)来扩展Rails的功能。例如,Devise用于用户认证,CanCanCan用于授权管理,Paperclip或Carrierwave处理...
5. **ActiveSupport**:提供了一系列有用的工具和库,如时间助手、字符串操作、哈希扩展等,增强了Ruby的基础功能。 6. **Routes**:Rails的路由系统将URL映射到控制器的行动上,定义了应用的导航结构。 7. **...
Ruby on Rails,简称Rails,是基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在使开发过程更加简洁高效。这个“ruby on rails 教程源码”很可能是为了辅助学习者深入理解Rails的...
Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构...同时,Rails社区的活跃度高,有大量的插件和 gems 可供扩展功能,为开发者提供了丰富的资源和支持。
### Ruby on Rails 教程知识点概述 #### 一、引言 - **敏捷开发与Rails:** 本书《Ruby on Rails教程》强调了Rails作为敏捷开发框架的优势。它旨在帮助开发者快速构建高质量的Web应用程序。 - **作者团队:** 本书...
13. **社区插件(Gems)**:Rails的生态系统中有大量高质量的第三方Gem,如Devise(用户认证)、Pundit(授权管理)、Paperclip或Carrierwave(文件上传)等,它们可以极大地扩展Rails的功能。 通过研究这个源码,...
Ruby on Rails,简称Rails,是一种基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。本示例源码提供了使用Ruby on Rails进行实际项目开发的具体...
Gems是Ruby生态中的关键组成部分,它们是预编译的代码库,用于扩展Ruby的功能。 标签"ruby1.8.7 rails2.3.8 gem ruby rails"进一步强调了这个包的主要技术元素。"gem"指的是Ruby的包管理系统,用于安装和管理各种...
- **前提条件**:为了能够顺利地开始Rails的学习之旅,读者需要具备一定的Ruby语言基础,并且对Web开发有一定的了解。 - **Rails是什么?**:Rails是一种用于开发服务器端应用程序的模型-视图-控制器(MVC)框架,它...
7. Gems和插件:Rails社区提供了大量的Gems(Ruby的包管理系统),可以方便地扩展功能。例如,Devise用于用户认证,Cancancan进行权限控制,Paperclip或Carrierwave处理文件上传等。 8. 安全性:Rails内置了一些...
7. **ActiveSupport**:这个库包含了各种实用工具和扩展,如时间辅助方法、字符串操作等,广泛应用于Rails项目。 8. **测试**:Rails内置了测试框架,包括Unit Test、Functional Test和Integration Test,通过`test...
解释JRuby与MRI(Matz's Ruby Interpreter,标准的Ruby解释器)的区别,包括JRuby对Java类库的兼容性。 2. **Ruby on Rails概述**:解释Rails的基本概念,如路由、控制器、模型、视图,以及ActiveRecord ORM(对象...
在Rails中,Ruby的元编程能力使得框架能够灵活地自定义和扩展。 Rails的核心理念是DRY(Don't Repeat Yourself),鼓励代码重用,避免重复编写相似的代码。此外,它还提供了大量的内置功能和库,如ActiveRecord用于...
3. **DevKit安装**:RubyMine虽然提供了很多便利,但为了能够编译Ruby中的C扩展,你还需要安装DevKit。这是一个包含了Windows平台所需的开发工具的集合。你可以从RubyInstaller的GitHub页面获取DevKit,按照官方文档...
最后,本章还包括了生产环境的部署步骤,以及一些常用的Ruby Gems(扩展库)。 为了方便读者学习,作者提供了书籍的电子版供免费阅读,并提供了两个下载地址。作者鼓励读者在学习过程中注册GitHub账号,建立学习...