---
# System prepended metadata

title: 4/14
tags: [Ruby]

---


###### 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)
可以看整個專案的程式碼行數....



