我有一个要分组的数组,“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],
# ...
# }
但我看到它在 4.0.2 中已被弃用。
我应该使用哪个函数?
最佳答案
它没有被弃用。
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 标准库的一部分。
关于ruby-on-rails - Rails group_by 是否已弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25324867/