(7)map、compact、uniq、blank、present的使用

切换到新的分支进行开发

git checkout -b seventh/map_compact_uniq_blank_present

案例进行

  • 添加路由
get 'map_compact_uniq_blank_present'
  • 添加动作
def map_compact_uniq_blank_present
end

map就是把结果一个个取出来放入一个新的数组,最终得到的是一个数组结果。

(7)map、compact、uniq、blank、present的使用_第1张图片
(7)map、compact、uniq、blank、present的使用_第2张图片
(7)map、compact、uniq、blank、present的使用_第3张图片
  • compact
    我们是取出每个商品关联的二级标签,如果我们修改第5个商品的外键为tag33,那么肯定找不到关联的二级标签,下面访问就会报错
(7)map、compact、uniq、blank、present的使用_第4张图片
(7)map、compact、uniq、blank、present的使用_第5张图片

于是我们把map的结果集里面为nil的元素去掉(也就是第5个商品关联的二级标签记录),这样我们在后面的遍历访问结果集的字段时就不会有nil class,自然不会有undefined method `ID' for nil:NilClass的情况发生

(7)map、compact、uniq、blank、present的使用_第6张图片

刷新页面发现得到商品的二级标签由9个变为8个,因为第5条商品记录对应的二级标签为nil,我们从map结果数组集中去掉该nil元素了


(7)map、compact、uniq、blank、present的使用_第7张图片

不同的商品关联的二级标签存在相同的情况,如果我们想要map结果集里面去掉重复的元素,可以使用uniq,如下就只剩4条不同的结果:

(7)map、compact、uniq、blank、present的使用_第8张图片
(7)map、compact、uniq、blank、present的使用_第9张图片

把修改提交到远程仓库

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

你可能感兴趣的:((7)map、compact、uniq、blank、present的使用)