我正在尝试运行以下代码:
dupe_groups = Activity.all.group_by { |e| e.non_id_attributes }.select{ |gr| gr.last.size > 1 }
redundant_elements = dupe_groups.map { |group| group.last - [group.last.first] }.flatten
redundant_elements.each(&:destroy)
但是,我收到以下错误:
Activity.find(:all).group_by { |e| e.non_id_attributes }.select{ |gr| gr.last.size > 1 }
NoMethodError: undefined method `last' for #<Hash:0x00000107e505e8>
from (irb):10:in `block in irb_binding'
from (irb):10:in `select'
from (irb):10
from /usr/local/bin/irb:12:in `<main>'
我怎样才能让这个家伙工作?
答案 0 :(得分:1)
当你做一个group_by你得到一个哈希时,你分组的东西被表示为哈希中的键,所以当你选择它时你应该这样做。选择{| key,values | ...}然后你可以使用values.size&gt; 1
虽然,当我看这段代码时,它有一股气味给我。你究竟想做什么?