2016年6月23日 星期四

ActiveRecord 後可用 select, sort_by, group_by

語句複雜很多table互相牽動時,sql的部分可以簡單化


Ex:

user = [
{ name: "C", is_admin: true, department: 20 },
{ name: "A", is_admin: true, department: 20 },
{ name: "B", is_admin: true, department: 25 },
{ name: "E", is_admin: true, department: 25 },
{ name: "D", is_admin: true, department: 25 },
{ name: "F", is_admin: false, department: 25 },
]

user = User.alluser.select! { |u| u[:is_admin] }
user_hash = user.group_by { |u| u[:department] }
user_hash.each { |k, v| v.sort_by! { |x| x[:name] } }

user_hash =
{20=>
[{:name=>"A", :is_admin=>true, :department=>20},
{:name=>"C", :is_admin=>true, :department=>20}],
25=>
[{:name=>"B", :is_admin=>true, :department=>25},
{:name=>"D", :is_admin=>true, :department=>25},
{:name=>"E", :is_admin=>true, :department=>25}]}



沒有留言:

張貼留言