切換到新的分支進(jìn)行開(kāi)發(fā)
git checkout -b seventh/map_compact_uniq_blank_present
案例進(jìn)行
- 添加路由
get 'map_compact_uniq_blank_present'
- 添加動(dòng)作
def map_compact_uniq_blank_present
end
map就是把結(jié)果一個(gè)個(gè)取出來(lái)放入一個(gè)新的數(shù)組每篷,最終得到的是一個(gè)數(shù)組結(jié)果瓣戚。
- compact
我們是取出每個(gè)商品關(guān)聯(lián)的二級(jí)標(biāo)簽,如果我們修改第5個(gè)商品的外鍵為tag33焦读,那么肯定找不到關(guān)聯(lián)的二級(jí)標(biāo)簽子库,下面訪問(wèn)就會(huì)報(bào)錯(cuò)
于是我們把map的結(jié)果集里面為nil的元素去掉(也就是第5個(gè)商品關(guān)聯(lián)的二級(jí)標(biāo)簽記錄),這樣我們?cè)诤竺娴谋闅v訪問(wèn)結(jié)果集的字段時(shí)就不會(huì)有nil class矗晃,自然不會(huì)有undefined method `ID' for nil:NilClass的情況發(fā)生
刷新頁(yè)面發(fā)現(xiàn)得到商品的二級(jí)標(biāo)簽由9個(gè)變?yōu)?個(gè)仑嗅,因?yàn)榈?條商品記錄對(duì)應(yīng)的二級(jí)標(biāo)簽為nil,我們從map結(jié)果數(shù)組集中去掉該nil元素了
不同的商品關(guān)聯(lián)的二級(jí)標(biāo)簽存在相同的情況张症,如果我們想要map結(jié)果集里面去掉重復(fù)的元素仓技,可以使用uniq,如下就只剩4條不同的結(jié)果:
把修改提交到遠(yuǎn)程倉(cāng)庫(kù)
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