vie*_*one 6 ruby ruby-on-rails
我有一个我想要分组的数组,看起来'group_by'功能对我的情况来说是好的.
http://apidock.com/rails/Enumerable/group_by
我在Rails 3.2.13中使用它.
grouped_array = my_array.group_by(&:my_function)
# Assume run 'my_function' have result1 on element1, element3 and result2 on element2, element4, then:
# grouped_array = {
# result1 => [element1, element3],
# result2 => [element2, element4],
# ...
# }
Run Code Online (Sandbox Code Playgroud)
但我发现它在4.0.2中被弃用了.
我应该使用哪种功能?
Fre*_*ung 15
它没有被弃用.
1.8.7之前的Ruby没有group_by内置,因此rails添加了它.Ruby 1.8.7添加了group_by,但是当rails group_by返回有序哈希时,ruby 1.8.7返回了普通哈希值(因为有序哈希值还没有在ruby 1.8.7中),所以rails继续覆盖这个方法.
Ruby 1.9确实有group_by,所以rails不再需要覆盖它,但是这个代码留给那些仍然运行1.8.7的人.
Rails 4降低了ruby 1.8.7的兼容性,所以这样的代码从rails中删除了.它并没有被弃用,但它不再是rails,因为它已经成为ruby标准库的一部分.
| 归档时间: |
|
| 查看次数: |
1162 次 |
| 最近记录: |