以下是我试图解决的代码行:
Category.all.map(&:id).each { |id| Category.reset_counters(id, :products) }
希望有人能帮助我理解(&:id)
正在做什么以及它如何影响其余部分?我相信它会将符号:id
变成 proc ,它会响应id
?!?但后来却让人感到困惑......
提前致谢!
答案 0 :(得分:3)
Category.all.map(&:id)
是
的简写Category.all.map { |a| a.id }
关于它如何影响该行的其余部分,上一部分将所有id
值作为单个Array
返回。然后将Array
个ID传递给each
的另一个调用,该调用会将每个ID迭代地传递到reset_counters
。