###### tags: `Ruby` # 4/14 ![](https://i.imgur.com/I1Rs3Uh.png) 在model裡建制cart_item.rb ## 數量改變功能 ![](https://i.imgur.com/m5RMMic.png) ![](https://i.imgur.com/wOEsuZC.png) ![](https://i.imgur.com/3gUUGaR.png) ### 讓increment預設值為1 ![](https://i.imgur.com/pI98ZMb.png) ![](https://i.imgur.com/vuKeKnX.png) ## 第三個功能 ![](https://i.imgur.com/82xoLVq.png) 可放入可拿出 ### cart_item 沒有item得方法 ![](https://i.imgur.com/jl9NwQp.png) ### 使用FactoryBot ![](https://i.imgur.com/n4koKPP.png) ``` factory :category do``` 會尋找到category這個類別所以不能亂打否則找不到 ![](https://i.imgur.com/CcOzV9N.png) 使名字動態 ![](https://i.imgur.com/mxbhfuM.png) 套用 **這樣真的有比較方便嗎?** ### 還不夠再做一個item的factoryBot ![](https://i.imgur.com/c5vA9lJ.png) ![](https://i.imgur.com/juk8CMX.png) 套用 ## 製造一個CartItem 的rspec:model ![](https://i.imgur.com/YwwTPuQ.png) ## 整台車的總金額 ![](https://i.imgur.com/XIkfnF7.png) ![](https://i.imgur.com/Uc0pGoV.png) ## 活動打折 安裝timecop ![](https://i.imgur.com/zs8bSd1.png) ![](https://i.imgur.com/0HXGPQJ.png) ![](https://i.imgur.com/NqC9JAf.png) ## 進階功能購物車轉hash ![](https://i.imgur.com/8PZ4VY1.png) ![](https://i.imgur.com/jXugc9n.png) ## 進階功能hash 轉購物車 ![](https://i.imgur.com/lIagnDN.png) from_hash 是類別方法後面還接了參數所以必須在initialize和from_hash方法上下點功夫 ![](https://i.imgur.com/PeUrZDu.png) from_hash的地方加上self.使類別可以直接使用 ![](https://i.imgur.com/gnT2t7F.png) intitalize後面加上參數記得要設預設值否則前面的測試全部壞光光 ## 整理一下 ![](https://i.imgur.com/M6mcpOD.png) ![](https://i.imgur.com/wdLigRr.png) ### 省略FactoryBot https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md ![](https://i.imgur.com/Xp8Ua6i.png) ![](https://i.imgur.com/3SO7aO9.png) 就可以省略了 ![](https://i.imgur.com/GvpZDda.png) ![](https://i.imgur.com/GgiIxne.png) 這個@也可以省了因為上面的 attr_reader ## ![](https://i.imgur.com/41CaJXp.png) 可以看整個專案的程式碼行數....