切换到新的分支进行开发
git checkout -b seventh/map_compact_uniq_blank_present
案例进行
- 添加路由
get 'map_compact_uniq_blank_present'
- 添加动作
def map_compact_uniq_blank_present
end
map就是把结果一个个取出来放入一个新的数组,最终得到的是一个数组结果。
- compact
我们是取出每个商品关联的二级标签,如果我们修改第5个商品的外键为tag33,那么肯定找不到关联的二级标签,下面访问就会报错
于是我们把map的结果集里面为nil的元素去掉(也就是第5个商品关联的二级标签记录),这样我们在后面的遍历访问结果集的字段时就不会有nil class,自然不会有undefined method `ID' for nil:NilClass的情况发生
刷新页面发现得到商品的二级标签由9个变为8个,因为第5条商品记录对应的二级标签为nil,我们从map结果数组集中去掉该nil元素了
不同的商品关联的二级标签存在相同的情况,如果我们想要map结果集里面去掉重复的元素,可以使用uniq,如下就只剩4条不同的结果:
把修改提交到远程仓库
git add .
git commit -m "map、compact、uniq、blank、present的使用"
git push -u https://github.com/xiaohuacc/active_record.git seventh/map_compact_uniq_blank_present
合并到主分支
git checkout master
git merge seventh/map_compact_uniq_blank_present
网友评论