Wednesday 15 August 2012

ruby - Group a sets of recors obtaining IDS instead of objects -



ruby - Group a sets of recors obtaining IDS instead of objects -

just brief question.

u.quizzes.group_by(&:section_id)

return me

{1=> [#<quiz id: 263, user_id: 2, exam_or_section: "section", section_id: 1>, #<quiz id: 264, user_id: 2, exam_or_section: "section", section_id: 1>, #<quiz id: 265, user_id: 2, exam_or_section: "section", section_id: 1>, #<quiz id: 266, user_id: 2, exam_or_section: "section", section_id: 1>, #<quiz id: 267, user_id: 2, exam_or_section: "section", section_id: 1>, #<quiz id: 268, user_id: 2, exam_or_section: "section", section_id: 1>], 2=>[#<quiz id: 269, user_id: 2, exam_or_section: "section", section_id: 2>], 3=>[#<quiz id: 270, user_id: 2, exam_or_section: "section", section_id: 3>]}

is there easy way ids array instead of objects?

{1=> [263,264,265, 266, 267, 268], 2=>[269], 3=> [270]}

thank you

u.quizzes.select(:id, :section_id).group_by(&:section_id).each {|k, v| v.map!(&:id) }

the select not strictly required should used, because other fields arent used in way , transfer useless info between database , rails.

ruby

No comments:

Post a Comment