- 浏览: 2049761 次
- 性别:
- 来自: NYC
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
Assuming recorded_on is a date, and not a DateTime:
If it is a DateTime:
让我们看下这一切是如何工作的:
&符号用在symbol前面实际上是调用了to_proc方法,而to_proc里返回一个Proc对象,内部为调用symbol指定的方法。
这个在ruby IRB和Rails Console有区别如下:
这个是不对的,见下面的更正
irb:
[1, 2, 3, 4, 5,6].group_by{|i| i%2}
return a Hash
rails console:
[1, 2, 3, 4, 5,6].group_by{|i| i%2}
return a Array
rails中支持group_by方法,在console里看看其工作原理:
>> a=(1..20).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>> a.group_by{|num| num/5}
=> {0=>[1, 2, 3, 4], 1=>[5, 6, 7, 8, 9], 2=>[10, 11, 12, 13, 14], 3=>[15, 16, 17, 18, 19], 4=>[20]}
>>
通过一个block提出的条件将一个数组转化为一个hash.
hash的key是数组元素执行block之后得到的结果
value是原数组中执行block得到key的元素组成的数组.
所以,可以在rails中这么用:
譬如根据性别对学生进行分组:
@students=Student.find(:all)
@student_groups=@students.group_by{|s| s.gender}
-
那么现在得到的@student_groups就有两组,一组是male,一组是female.
在对其进行循环的时候,使用hash循环的方式:
<% @student_groups.each do |gender,students| %>
<%= gender %>
<ul>
<% students.each do |student| %>
<li><%= student.name%></li>
<% end %>
</ul>
<% end %>
====结果如下:
female
lucy
jessi
male
jack
jim
mike
hash的循环方式:
2层循环,先对keys进行循环,然后是key对应的values进行循环.
感谢,确实是
@records = Record.all.group_by(&:recorded_on)
If it is a DateTime:
@records = Record.all.group_by { |record| record.recorded_on.to_date }
让我们看下这一切是如何工作的:
class Symbol # Turns the symbol into a simple proc, which is especially useful for enumerations. Examples: # # # The same as people.collect { |p| p.name } # people.collect(&:name) # # # The same as people.select { |p| p.manager? }.collect { |p| p.salary } # people.select(&:manager?).collect(&:salary) def to_proc Proc.new { |*args| args.shift.__send__(self, *args) } end end
&符号用在symbol前面实际上是调用了to_proc方法,而to_proc里返回一个Proc对象,内部为调用symbol指定的方法。
这个在ruby IRB和Rails Console有区别如下:
这个是不对的,见下面的更正
irb:
[1, 2, 3, 4, 5,6].group_by{|i| i%2}
return a Hash
rails console:
[1, 2, 3, 4, 5,6].group_by{|i| i%2}
return a Array
rails中支持group_by方法,在console里看看其工作原理:
>> a=(1..20).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>> a.group_by{|num| num/5}
=> {0=>[1, 2, 3, 4], 1=>[5, 6, 7, 8, 9], 2=>[10, 11, 12, 13, 14], 3=>[15, 16, 17, 18, 19], 4=>[20]}
>>
通过一个block提出的条件将一个数组转化为一个hash.
hash的key是数组元素执行block之后得到的结果
value是原数组中执行block得到key的元素组成的数组.
所以,可以在rails中这么用:
譬如根据性别对学生进行分组:
@students=Student.find(:all)
@student_groups=@students.group_by{|s| s.gender}
-
那么现在得到的@student_groups就有两组,一组是male,一组是female.
在对其进行循环的时候,使用hash循环的方式:
<% @student_groups.each do |gender,students| %>
<%= gender %>
<ul>
<% students.each do |student| %>
<li><%= student.name%></li>
<% end %>
</ul>
<% end %>
====结果如下:
female
lucy
jessi
male
jack
jim
mike
hash的循环方式:
2层循环,先对keys进行循环,然后是key对应的values进行循环.
评论
4 楼
夜鸣猪
2010-07-21
orcl_zhang 写道
补充上代码
Rails 2.3.2
>> [1, 2, 3, 4, 5,6].group_by{|i| i%2} => #<OrderedHash {0=>[2, 4, 6], 1=>[1, 3, 5]}>
Rails 2.3.2
感谢,确实是
3 楼
夜鸣猪
2010-07-21
是Hash
>> User.all.group_by{|x|x.id}.class => ActiveSupport::OrderedHash
2 楼
orcl_zhang
2010-07-21
补充上代码
Rails 2.3.2
>> [1, 2, 3, 4, 5,6].group_by{|i| i%2} => #<OrderedHash {0=>[2, 4, 6], 1=>[1, 3, 5]}>
Rails 2.3.2
1 楼
orcl_zhang
2010-07-21
irb:
[1, 2, 3, 4, 5,6].group_by{|i| i%2}
return a Hash
rails console:
[1, 2, 3, 4, 5,6].group_by{|i| i%2}
return a Array
===================
你用的什么环境?
rails console的group_by返回也是一个Hash
[1, 2, 3, 4, 5,6].group_by{|i| i%2}
return a Hash
rails console:
[1, 2, 3, 4, 5,6].group_by{|i| i%2}
return a Array
===================
你用的什么环境?
rails console的group_by返回也是一个Hash
def group_by assoc = ActiveSupport::OrderedHash.new each do |element| key = yield(element) if assoc.has_key?(key) assoc[key] << element else assoc[key] = [element] end end assoc end unless [].respond_to?(:group_by)
发表评论
-
Destroying a Postgres DB on Heroku
2013-04-24 10:58 890heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3215reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3241alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1435问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1342这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1301以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1860首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2238这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2229开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1192class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8092TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 1981刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1435这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1899面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17150git push To git@github.com:use ... -
Rails 自身的many to many关系 self has_many
2011-11-12 01:43 2679简单点的 #注意外键在person上people: id ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 913第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1657开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12902Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2073又是这个date format的错误。 上次出错忘了,记录下 ...
相关推荐
multi_proc_wrong.c 下载后直接编译运行
在Linux某种特殊情况下 ping命令报错cat_set_proc 该文档源码层级分析核心原因 帮忙学习Linux权限、用户等
1997_proc_iedm_tuinhout.pdf
mysql支持翻页与排序的存储过程,结合翻页功能和排序功能。
Oracle_ProC编程入门,感觉还有点用
create device file using proc file system
用Linux环境下C/C++语言实现的Oracle的原生Proc接口,供参考。
PROC_BLE 数据手册,Cypress公司ble芯片
multi_proc.c 下载后直接编译运行
matlab导入excel代码utl_why_proc_import_export_needs_to_be_deprecated_and_dosubl_acknowledged 为什么不赞成proc import导出并确认dosubl。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区...
kernel_module_list_first_proc _level
SAS proc_Template_Styles_Tip_Sheet
Oracle 11g ProC_C++编程艺术 源代码
如何查看ANDROID进程信息呢,可以先进入ADB SHELL,然后在PROC文件夹下,有很多对应进程ID号的子文件夹,进入对应的文件夹内,可以看到有以下信息,就可以查询到你的进程信息了。参数如下:
父进程创建多个子进程分别执行的代码
Oracle编程Oci_ProC_odbc简易入门 短小精悍的资料,入门的帮手
流水线结构是在逻辑很复杂的情况下使用,通过分栈,把一个复杂的逻辑分成若干个比较简单的块实现,减少信号的逻辑级,提高频率。最形象的实例就是位宽较大的加法器。 把一个复杂的逻辑分成若干个比较简单的块实现,...
PROC_DWD_PERSON_LABEL_DIM_old.sql
Proc_DepIndCost_Data_Oper.sql