Rails重构每个圆圈

时间:2014-02-27 14:37:35

标签: ruby-on-rails ruby

在RoR中可以做到这一点

i=[]
Structure.with_roles(:admin).each do |s|
 i<<s.outfits.pluck(:id)
end
puts i

在单行代码中? 因为我正在编写cancan能力文件,所以需要将此功能放在一行中:

i=[]
can :destroy, Outfit, id: Structure.with_roles(:admin).each do |s|
 i<<s.outfits.pluck(:id)
end

1 个答案:

答案 0 :(得分:1)

puts Structure.with_roles(:admin).map{|s| s.outfits.pluck(:id)}

虽然你会得到一个数组数组,所以你可能(或可能不想)使用.flatten