Ruby on rails (&;:id)在Product.all.map(&;:id)中具体做什么

Ruby on rails (&;:id)在Product.all.map(&;:id)中具体做什么,ruby-on-rails,ruby,block,proc,Ruby On Rails,Ruby,Block,Proc,下面是一行代码,我正试着去理解它: Category.all.map(&:id).each { |id| Category.reset_counters(id, :products) } 希望有人能帮助我了解(&:id)正在做什么,以及它对其他行的影响?我相信它会把符号:id变成一个过程,它将响应id?!?但随后它变得令人困惑 提前谢谢 Category.all.map(&:id) 是的缩写 Category.all.map { |a| a.id } 至于它如何影响行的其余

下面是一行代码,我正试着去理解它:

Category.all.map(&:id).each { |id| Category.reset_counters(id, :products) }
希望有人能帮助我了解
(&:id)
正在做什么,以及它对其他行的影响?我相信它会把符号
:id
变成一个过程,它将响应
id
?!?但随后它变得令人困惑

提前谢谢

Category.all.map(&:id)
是的缩写

Category.all.map { |a| a.id }
至于它如何影响行的其余部分,上面的部分将所有
id
值作为单个
数组返回。然后将id的
数组
传递到另一个对
每个
的调用中,该调用会迭代地将每个id传递到
重置\u计数器

是的缩写

Category.all.map { |a| a.id }

至于它如何影响行的其余部分,上面的部分将所有
id
值作为单个
数组返回。然后将id的
数组
传递给另一个对
每个
的调用,该调用迭代地将每个id传递给
重置计数器

肯定是一个复制。虽然很难找到。。。应该拼出“符号和冒号”。(我不能删除;它有答案)不用担心,我搜索了lambda操作符快捷方式Rails。我更喜欢这个选项:
Category.all.each{cat | Category.reset_counters(cat.id,:products)}
这对我来说更容易阅读@jvnill为什么要将某个东西标记为某个本身就是复制品的复制品?肯定是复制品。虽然很难找到。。。应该拼出“符号和冒号”。(我不能删除;它有答案)不用担心,我搜索了lambda操作符快捷方式Rails。我更喜欢这个选项:
Category.all.each{cat | Category.reset_counters(cat.id,:products)}
这对我来说更容易阅读@jvnill为什么要将某个东西标记为某个本身就是复制品的复制品?