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