Rails 对所有Ruby对象进行了扩展 to_json() ,to_yaml()
Rating = Struct.new(:name,:ratings)
rating = Rating.new("Rails",[10,10,9.5,10])
puts rating.to_json 输出 ["Rails",[10,10,9.5,10]]
puts tating.to_yaml 输出 name:Rails
rating:
- 10
- 10
- 9.5
- 10
所有的ActiveRecord 对象及所有hash都提供了 to_xml()方法
Rails还增加了.blank? 方法
----nil 和 false 对象, 返回true
----数值和true对象, 返回false
----其他对象,只有当对象为空时,返回true
枚举和数组
Rails 给 Ruby的Enumerable类型加上一些魔法
group_by()
groups = posts.group_by(|post| post.author_id)
Rails还给 Enumerable上另外2个方法 index_by(),将一个集合作为参数,并将其转换为一个hash,其中的值来源自集合,而键则是各个元素经过代码块后的返回值
us_states = State.find(:all)
state_lookup = us_states.index_by{|State| state.short_name}
sum 可以求和
total_orders = Oder.find(:all).sum{|order| order.value}