0

这是我试图绕开的代码行:

Category.all.map(&:id).each { |id| Category.reset_counters(id, :products) }

希望有人可以帮助我了解(&:id)正在做什么以及它如何影响线路的其余部分?我相信它会将符号:id变成一个可以响应的过程id!?但是接下来就很混乱了...

提前致谢!

4

1 回答 1

3
Category.all.map(&:id)

是简写

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

至于它如何影响该行的其余部分,上面的部分将所有id值作为单个Array. 然后这个Arrayids 被传递到另一个调用中each,该调用迭代地将每个 id 传递到reset_counters.

于 2013-08-30T01:51:05.327 回答